Imagemagick

使用 ImageMagick 去除 Alpha 效果不好,但僅限於白色背景

  • September 10, 2015

在將 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

-密度 300

有一些抗鋸齒,但不是很好,有些線條(例如 上的水平描邊e)已經完全消失了。

選擇白色以外的任何顏色都會產生不錯的效果。

convert -density 300 -background \#fffffe -alpha remove -alpha off a.pdf 300-fffffe.png

-密度 300 -背景 #ffffe

奇怪的是,低解析度下的渲染效果更好(雖然仍然不理想)——至少文本是可讀的。

convert -density 100 -alpha remove -alpha off a.pdf 90-white.png

-密度 100

在更高的解析度下,渲染仍然很差,但至少線條開始出現。

convert -density 750 -alpha remove -alpha off a.pdf a.png

-密度 750

  • 為什麼抗鋸齒對於白底黑字如此糟糕,而對於任何其他背景顏色都非常好,即使該背景顏色在視覺上與白色無法區分?
  • 如果我將其設置為自動化過程的一部分,在該過程中沒有人可以目視檢查結果,我需要避免哪些參數才能獲得良好的結果?

就像當背景是白色時,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

在此處輸入圖像描述

引用自:https://unix.stackexchange.com/questions/228881