Imagemagick
使用 ImageMagick 去除 Alpha 效果不好,但僅限於白色背景
在將 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
- 為什麼抗鋸齒對於白底黑字如此糟糕,而對於任何其他背景顏色都非常好,即使該背景顏色在視覺上與白色無法區分?
- 如果我將其設置為自動化過程的一部分,在該過程中沒有人可以目視檢查結果,我需要避免哪些參數才能獲得良好的結果?
就像當背景是白色時,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