最近 Office 有增加了读取 WebP 图像的功能并将其作为图片集成到Office文档中。
WebP 格式具有许多优势,特别是与 JPEG 和其他格式相比,它允许文件大小大幅减小,且图像质量极佳。它还完全支持透明蒙版。
不幸的是,嵌入在 Office 文档中的 WebP 图像似乎在内部保存为 PNG,这会增加保存图像的内存要求。
或者是否有特定的方法可以确保嵌入到 Office 文档中的 WebP 图像以其原始 WebP 格式和压缩形式保存?
答案1
我尝试了几种不同的方法来禁用压缩/丢弃图像数据等,但在 Word 中本机执行这些操作没有任何成功。
对于某些用例来说,这更像是一个核选项,但它做工作-用原始 webp 图像替换内部 png 文件:
- 正常创建文档,将最终版本另存为 .docx,然后关闭 Word
- 使用你喜欢的任何工具解压你的 docx 文件。powershell、7zip、unzip.exe 等
- 删除位于的 png 图像文件
[extract folder]\word\media\Image1.png
- 将您的 webp 图像复制到同一文件夹并重命名为
Image1.png
- 现在选择所有解压的文件夹和 [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"