有没有办法可以在 Microsoft Office(Word、PowerPoint)中保存 WebP 图像而无需重新压缩(解压)?

有没有办法可以在 Microsoft Office(Word、PowerPoint)中保存 WebP 图像而无需重新压缩(解压)?

最近 Office 有增加了读取 WebP 图像的功能并将其作为图片集成到Office文档中。

WebP 格式具有许多优势,特别是与 JPEG 和其他格式相比,它允许文件大小大幅减小,且图像质量极佳。它还完全支持透明蒙版。

不幸的是,嵌入在 Office 文档中的 WebP 图像似乎在内部保存为 PNG,这会增加保存图像的内存要求。

或者是否有特定的方法可以确保嵌入到 Office 文档中的 WebP 图像以其原始 WebP 格式和压缩形式保存?

答案1

我尝试了几种不同的方法来禁用压缩/丢弃图像数据等,但在 Word 中本机执行这些操作没有任何成功。

对于某些用例来说,这更像是一个核选项,但它工作-用原始 webp 图像替换内部 png 文件:

  1. 正常创建文档,将最终版本另存为 .docx,然后关闭 Word
  2. 使用你喜欢的任何工具解压你的 docx 文件。powershell、7zip、unzip.exe 等
  3. 删除位于的 png 图像文件[extract folder]\word\media\Image1.png
  4. 将您的 webp 图像复制到同一文件夹并重命名为Image1.png
  5. 现在选择所有解压的文件夹和 [Content_Types].xml,然后将它们重新压缩为一个新的 .docx 文件

大功告成!现在,您获得了一个更小的 word 文件,但仍然显示您的 webp 图像。


缺点:

  • 如果你打开文档并重新保存,图像会再次转换为甚至更大.bin 格式(虽然可以用同样的方式替换)
  • 虽然使用这种方法可以很好地完成调整图像大小(甚至裁剪)等小幅编辑,但我不确定我对它的效果等的信任程度有多高
  • 如果某人的 Office 版本比你的旧,则你基本上会删除查看这些文件的任何向后兼容性

下面是一个示例,一次性阐明了使用 powershell 脚本的步骤

# extract the docx
mkdir "c:\test\extract"
Rename-Item -Path "C:\test\huge.docx" -NewName "C:\test\huge.zip"
Expand-Archive -Path "C:\test\huge.zip" -DestinationPath "c:\test\extract\"

# replace a png with webp
Get-Item "C:\test\extract\word\media\image1.png" | Remove-Item
Copy-Item "C:\test\test.webp C:\test\extract\word\media\image1.png"

# re-zip to docx
Get-Item -Path "C:\test\extract\*" | Compress-Archive -DestinationPath "c:\test\small.zip"
Rename-Item -Path "C:\test\small.zip" -NewName "C:\test\small.docx"

# clean up
Rename-Item -Path "C:\test\huge.zip"  -NewName "C:\test\huge.docx"
Remove-Item -Recurse "C:\test\extract"

相关内容