当将 PDF(仅包含白色文本的黑色文本)转换为 PNG 并使用 ImageMagick(Ubuntu 14.04 的版本 6.7.7.10)删除透明度时,我发现抗锯齿质量出现了令人惊讶的变化。
pdflatex
我的示例输入文件是运行的结果
\documentclass[preview]{standalone}
\begin{document}
Hello, world!
\end{document}
在 300 dpi 下,结果很糟糕(带有白色背景,添加-background \#ffffff
或-background white
产生视觉上无法区分的输出):
convert -density 300 -alpha remove -alpha off a.pdf 300-white.png
有一些抗锯齿功能,但不是很好,并且一些线条(例如 上的水平描边e
)完全消失了。
选择白色以外的任何颜色都会产生不错的效果。
convert -density 300 -background \#fffffe -alpha remove -alpha off a.pdf 300-fffffe.png
奇怪的是,低分辨率下的渲染效果更好(虽然仍然不理想)——至少文本是可读的。
convert -density 100 -alpha remove -alpha off a.pdf 90-white.png
在更高的分辨率下,渲染效果仍然明显较差,但至少线条开始出现。
convert -density 750 -alpha remove -alpha off a.pdf a.png
- 为什么抗锯齿对于白底黑字来说如此糟糕,而对于任何其他背景颜色却完美无缺,即使该背景颜色在视觉上与白色没有区别?
- 如果我将其设置为自动化过程的一部分,而没有人在场目视检查结果,那么我需要避免哪些参数才能获得良好的结果?
答案1
就像当背景为白色时,ImageMagick 检测到只有两种颜色 - 黑色和白色 - 并切换到 PNG 的灰度模式,因此出现丑陋的结果:
为了限制将黑白应用于抗锯齿边缘的丑陋,您可以使用以下命令禁用抗锯齿+antialias
:
convert -density 300 -alpha remove -alpha off +antialias a.pdf 300-white.png
那么现在,如何防止使用灰度PNG 模式?这里是:
convert -density 300 -alpha remove -alpha off a.pdf png24:300-white-24.png