Есть ли способ сохранить изображения WebP в Microsoft Office (Word, PowerPoint) без повторного сжатия (декомпрессии)?

Недавно в Office добавлена ​​возможность читать изображения WebP и интегрировать их в документы Office в виде изображений.

Формат WebP имеет множество преимуществ, в частности, он позволяет создавать файлы значительно меньшего размера с превосходным качеством изображения по сравнению с JPEG и другими форматами. Маски прозрачности также полностью поддерживаются.

К сожалению, похоже, что изображения WebP, встроенные в документы Office, сохраняются внутри как PNG, что увеличивает требования к памяти для сохранения изображений.

Или существует особый способ гарантировать, что изображения WebP, встроенные в документы Office, сохраняются без изменений, в их исходном формате WebP и сжатии?

1 ответ

Я попробовал несколько разных способов отключения сжатия/удаления данных изображения и т. д., но мне не удалось сделать это в Word.

Это скорее ядерный вариант для определенных случаев использования, но он работает — замена внутренних файлов PNG исходными изображениями WebP:

  1. Создайте документ как обычно, сохраните окончательную версию как .docx и закройте word.
  2. Разархивируйте файл docx, используя все, что захотите. powershell, 7zip, unzip.exe и т. д.
  3. Удалите файл изображения PNG, расположенный по адресу[extract folder]\word\media\Image1.png
  4. Скопируйте изображение веб-сайта в ту же папку и переименуйте его вImage1.png
  5. Теперь выберите все извлеченные папки и [Content_Types].xml и повторно заархивируйте их в новый файл .docx.

И вы сделали! Теперь у вас есть текстовый файл гораздо меньшего размера, в котором по-прежнему отображаются ваши веб-изображения.


Недостатки:

  • Если вы откроете документ и повторно сохраните его, изображение снова преобразуется в еще больший формат .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"
Другие вопросы по тегам