ImageMagickを使用してアルファを削除すると、結果は良くありませんが、白い背景でのみ発生します。

ImageMagickを使用してアルファを削除すると、結果は良くありませんが、白い背景でのみ発生します。

PDF(白いテキストと黒のテキストのみを含む)をPNGに変換し、ImageMagick(Ubuntu 14.04の場合はバージョン6.7.7.10)を使用して透明度を削除すると、アンチエイリアシングの品質に驚くべき変化があることがわかりました。

pdflatex私の例の入力ファイルは、次を実行した結果です。

\documentclass[preview]{standalone}
\begin{document}
Hello, world!
\end{document}

300dpiでは、結果はひどいです(白い背景、視覚的に区別できない出力の追加または-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 -背景 #fffffe

奇妙なことに、低解像度でのレンダリングが良いです(まだ理想的ではありませんが)。少なくともテキストは読むことができます。

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

  • 背景色が白と視覚的に区別されない場合でも、アンチエイリアシングが白い背景の黒いテキストにはあまり良くありませんが、他の背景色には完璧な理由は何ですか?
  • 結果を視覚的に確認するために人がいない自動化されたプロセスの一部としてこれを設定した場合、良い結果を得るためにどのパラメータを避けるべきですか?

ベストアンサー1

背景が白の場合と同様に、ImageMagickは白黒の2色のみを検出し、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

ここに画像の説明を入力してください。

おすすめ記事