我有一个包含许多大图像的 odt 文件,为了与某些人友好相处,我想转发 odt,我想手动降低图像分辨率。
怎么做?
答案1
最后我找到了一种方法:
- 选择图像。
- 在里面图像工具箱,有一个过滤命令:命令它。
- 选择马赛克滤镜。
- 设置宽度和高度像素值。值越大,分辨率越小,文件大小越小。
答案2
我编写了一个脚本来执行此操作。它使用 ImageMagick ( sudo apt install imagemagick
)。
#!/bin/bash
[ $# -ne 1 ] && echo -e "Usage $(basename "$0") FILE.odt";
filename=$(basename -- "$1")
filename="${filename%.*}"
mkdir document
cd document || exit
unzip "../$1"
time mogrify -colorspace RGB -resize '786432@>' -colorspace sRGB ./Pictures/* # Alt: -resize '1024x768>'. 2160000@> for '1200×1800>'
du -sh ./Pictures/
time mogrify -sampling-factor 4:2:0 -quality 75% -interlace Plane ./Pictures/*
du -sh ./Pictures/
time mogrify -alpha off ./Pictures/*.png
du -sh ./Pictures/
zip -0 --no-extra "../$filename-comp.odt" mimetype # Copy mimetype file with: Zero compression. Do not save extra file attributes.
zip --recurse-paths "../$filename-comp.odt" * --exclude mimetype
exit 0
# Alternatives
mogrify -gaussian-blur 0.05 -quality 75% -interlace Plane ./Pictures/* # Lower quality/smaller file
然后尝试ls -lhS *.odt
。我将其缩小到原始文件大小的 40%。
du
仅供time
参考。
我仍然不知道如何在内部将所有 PNG 转换为 JPEG(我不需要 PNG alpha 通道)。这样可以大大减小文件大小。
参考和注释
- Open Office 如何压缩文件?
- 使用 ImageMagick 压缩 JPG 文件的建议
- ImageMagick 命令行选项
- 有一个自 2011 年以来的相关错误
- 自 IMv7 起
magick identify/mogrify/...
它被用来[1]。
答案3
确实这样做:手工进行。
LibreOffice 不是图像编辑器!使用 Gimp 或类似程序来更改图片分辨率。
答案4
导出为 pdf 是另一种解决方案:不要使用无损图像压缩,而是使用 jpeg。我刚刚将一封包含大量照片的信件从 23Mb 缩小到 3Mb,看起来不错。