Gil*_*il' 3 imagemagick image-manipulation
在将 PDF(仅白色黑色文本)转换为 PNG 并使用 ImageMagick(来自 Ubuntu 14.04 的 6.7.7.10 版)去除透明度时,我得到了令人惊讶的(对我而言)抗锯齿质量的变化。
我的样本输入文件运行的结果pdflatex
上
\documentclass[preview]{standalone}
\begin{document}
Hello, world!
\end{document}
Run Code Online (Sandbox Code Playgroud)
在 300 dpi 时,结果很糟糕(即带有白色背景,添加-background \#ffffff
或-background white
产生视觉上无法区分的输出):
convert -density 300 -alpha remove -alpha off a.pdf 300-white.png
Run Code Online (Sandbox Code Playgroud)
有一些抗锯齿,但不是很好,并且一些线条(例如 上的水平描边e
)完全消失了。
选择白色以外的任何颜色都会产生不错的结果。
convert -density 300 -background \#fffffe -alpha remove -alpha off a.pdf 300-fffffe.png
Run Code Online (Sandbox Code Playgroud)
奇怪的是,在低分辨率下渲染效果更好(虽然仍然不理想)——至少文本是可读的。
convert -density 100 -alpha remove -alpha off a.pdf 90-white.png
Run Code Online (Sandbox Code Playgroud)
在更高的分辨率下,渲染仍然很差,但至少线条开始出现。
convert -density 750 -alpha remove -alpha off a.pdf a.png
Run Code Online (Sandbox Code Playgroud)
就像当背景是白色的时候,ImageMagick 检测到只有两种颜色——黑色和白色——并切换到 PNG 的灰度模式,因此得到了丑陋的结果:
要限制将黑色和白色应用于抗锯齿边缘的丑陋程度,您可以使用以下命令禁用抗锯齿+antialias
:
convert -density 300 -alpha remove -alpha off +antialias a.pdf 300-white.png
Run Code Online (Sandbox Code Playgroud)
convert -density 300 -alpha remove -alpha off a.pdf png24:300-white-24.png
Run Code Online (Sandbox Code Playgroud)