将图像从 Excel 复制到 Microsoft Paint 时分辨率会降低

将图像从 Excel 复制到 Microsoft Paint 时分辨率会降低

有人能解释一下为什么将图片从 MS Office 应用程序(Excel/Word/Outlook)复制到 Microsoft Paint 时分辨率会下降吗?

详细解释一下:

  • 我在 Excel 中截取了屏幕截图(插入 => 屏幕截图 => 屏幕剪辑)
  • 我将其复制到 MS Paint
  • 我将其复制回 MS Excel

新图像(从 Paint 粘贴)的大小(高度 2.04 英寸,宽度 4.71 英寸)大约是原始图像大小(高度 5.11 英寸,宽度 11.78 英寸)的一半(甚至更小)。我已将这两幅图像保存在两个不同的文件中,并注意到包含新图像的文件为 151 KB,而包含原始图像的文件为 287 KB。

准确地说,分辨率损失发生在从 Excel 复制到 Paint 的时候。

我正在使用 Windows 10 和 MS Office 2016。我的笔记本电脑屏幕有 4k 分辨率。

我怀疑这是 MS Paint 中存在的一个限制,因为如果从 Excel 复制到 Paint 3D(或从 Excel 复制到 Outlook),就不会发生同样的事情。MS Paint 可能还没有适应新的 4k 分辨率标准,但可能有一个我不知道的解决方案。

还要注意的是,我的另一台具有高清屏幕分辨率(而不是 4K)的笔记本电脑没有遇到同样的问题。我能够将图像从 Excel 复制到 MS Paint 并复制回 Excel,而不会造成图像大小的任何损失。

请指教。

编辑:正如@harrymc 所问,原始图像和粘贴到 MS Paint 的图像附在下面:


原始图像: 在此处输入图片描述

粘贴到 MS Paint 后的图像:

在此处输入图片描述

更多示例:

根据评论,我认为添加更多示例可以使问题更清楚。这次,我保留了较小的默认画布大小,这样就不会有多余的空白。如果粘贴了较大的图像,Paint 会自动放大画布大小以适合图像。

原始图像 - 大小 41 KB - 尺寸 532 像素 x 222 像素

在此处输入图片描述

图像,粘贴到 MS Paint 后 - 大小 8 KB - 尺寸 217 像素 x 92 像素

在此处输入图片描述

尺寸证明 在此处输入图片描述

答案1

如果问题出在图像质量上:

发布的图片都是JPEG如果是这种情况,则每次以 JPEG 格式保存都会丢失分辨率。这种格式是有损的,因为每次后续压缩都会导致图像质量有所损失。

此外,两幅图像的尺寸并不相同,第二幅图像实际上比第一幅图像更大,因此像素外推会比原始图像造成进一步的损失。

如果您希望获得更高的准确性,请使用比 Paint 更先进的图像编辑器,例如免费的油漆网,并使用无损格式如 PNG(带或不带压缩)。


如果问题在于图像大小:

复制/粘贴不可能改变图像大小,因此需要其他解释。

对于楼主上述操作导致结果太小,我能想到的唯一解释是:

  1. 该屏幕截图是在图像缩小显示时截取的,因此图像较小。
  2. 将低分辨率图像粘贴到高分辨率图像中,这会使其看起来更小。

在所有情况下,我的建议是不要使用屏幕截图来复制图像,而是使用您正在使用的产品提供的功能来导出和导入图像。

答案2

虽然我不确定是什么原因导致从 Excel 复制时图像大小/分辨率降低,但我找到了一个(有点黑客的)解决方法,我认为分享可能会有所帮助。关键思想是通过深入研究 Excel 文档的文件结构,我们可以检索原始图像,而无需通过剪贴板。

  1. 创建要从中检索图像的 Excel 文档的临时副本。(确保您的文档以 .xlsx 扩展名保存。)
  2. 将复制的 Excel 文档的扩展名从“.xlsx”更改为“.zip”。
  3. 在此 zip 文件中,您将在“xl/media”子目录下找到电子表格中包含的所有图像。您可以像从任何压缩目录中检索文件一样检索这些图像。

答案3

这是一个自动的解决方法。

从 MS Word 中选择任何嵌入的图像,它将在画图中为您打开它。

它实际上会用您选择的那幅图像 (temp.docx) 保存一个临时 word 文件。然后将其重命名为临时文件夹中的 temp.zip 文件,该文件位于您的 word 文件所在的同一文件夹中。

然后解压缩它。

然后它会查找图形图像并将其移出临时文件夹,进入 Word 文件所在的同一文件夹。文件名称为 image.png。最后它会删除时间文件夹并检索 Word 文件。

===== 在参考中请确保您拥有或包含“Microsoft Scripting Runtime Library”

Sub PaintFromWordDo()
'retrieves jpeg file so you may open it in paint.
'Capture the image to a single word file

'save file to temp and close file
'rename file to zip (from docx o docm)
'see hwether you may execute zip file if not, open the temp folder
'if you can execute zip file, activate the graphic image

Dim p As New Scripting.FileSystemObject
Dim oApp As Object
Dim Myfolder As String

    Myfolder = ActiveDocument.Path

  Selection.Copy

   Documents.Add DocumentType:=wdNewBlankDocument
    Selection.PasteAndFormat (wdPasteDefault)
    
    ActiveDocument.SaveAs2 Filename:=Myfolder & "\temp.docx", FileFormat:= _
        wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
        :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
        :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
        SaveAsAOCELetter:=False, CompatibilityMode:=15
    ActiveWindow.Close
    On Error Resume Next
    p.DeleteFile Myfolder & "\image1.png"
    On Error GoTo 0
    p.CreateFolder Myfolder & "\temp"
    p.MoveFile Myfolder & "\temp.docx", Myfolder & "\temp\temp.zip"
    Set oApp = CreateObject("Shell.Application")
    oApp.NameSpace(Myfolder & "\temp").CopyHere oApp.NameSpace(Myfolder & "\temp\temp.zip").Items

    
    p.MoveFile Myfolder & "\temp\word\media\image1.png", Myfolder & "\"
    Set p = Nothing
    
    p.DeleteFolder Myfolder & "\temp", True
    ActiveDocument.FollowHyperlink Myfolder & "\image1.png"
    
End Sub

相关内容