gnuplot (4.2) を使用して、グラフを PostScript ファイルに書き込みました。しかし、「convert file.ps file.png」コマンドを使用してこの .ps ファイルを .png ファイルに変換すると、背景のない (透明な) png 画像が得られます。
なぜこれが起こるのですか?また、背景が白い png 画像を取得するにはどうすればよいですか?
gnuplot (4.2) を使用して、グラフを PostScript ファイルに書き込みました。しかし、「convert file.ps file.png」コマンドを使用してこの .ps ファイルを .png ファイルに変換すると、背景のない (透明な) png 画像が得られます。
なぜこれが起こるのですか?また、背景が白い png 画像を取得するにはどうすればよいですか?
次の 2 つの理由が考えられます。
まず、 PostScript 入力に背景が含まれていない可能性が非常に高いです。事実上、これは「透明」です。印刷時は通常通り表示されます。(一部の PostScript ファイルには白い背景があります。また、印刷すると、これは通常どおりに表示されます。ファイルの「背景」に透かしを追加しようとしたときに、それが機能しないように思われる場合にのみ、これを発見します。これらの場合、透かしストロークは白い領域で覆われていますが、これも最初にストロークされた PS コンテンツで覆われています...)
2 番目:convert a.ps a.png
コマンド自体はジョブを実行しません。外部 の「デリゲート」ヘルパー プログラム (おそらく Ghostscript) を呼び出します。また、Ghostscript には、PNG 出力を微調整するさまざまな方法があります。次のように、すべての出力「デバイス」について Ghostscript にクエリを実行できます
gs -h
次に、PNG 関連のデバイスを含む行のみにクエリを制限します。
gs -h | grep png
pngalpha
出力デバイスがあることがわかります。これは、PNG 画像の透明度を出力できます。
次に、convert
デリゲートの完全なリストについてクエリを実行します。
convert -list delegate
convert
ジョブを完了するために背後で使用する数十のコマンドが表示されます。PNG の入力または出力処理に使用するコマンドを見てみましょう。
convert -list delegate | grep -i png
gs ... -sDEVICE=pngalpha ...
いくつかの変換タイプのコマンドラインが見つかる可能性があります。
これを試して:
convert a.ps -background white a.png
Pipitas は、なぜこれが起こっているのかをすでにうまく説明しています。
問題を解決するには、つまり背景を白くするには、コマンド ラインの-alpha off
設定を使用します。convert
さらに、-density x
スイッチを使用して出力の解像度を制御すると便利です。したがって、次のようなことを試す必要があります。
convert -density 300 -alpha off input.ps output.png