PDFをconvert
を使用してPNG画像に変換します。画像は?x1080の比率を持つことによって1920x1080の比率に適合し、最高の品質を持つ必要があります。
以下は、convertで使用できる多くのオプションです。 https://imagemagick.org/script/command-line-options.php#append
convert my.pdf -geometry 1920x1080 -size 1920x1080 -density 1920x1080 my_resized_pdf.png
コマンドの結果は、良好な形状(763x1080)の画像を提供しますが、低品質にしたくありません。
convert my.pdf -size 1920x1080 -density 1920x1080 my_resized_pdf.png
結果の品質はまさに私が望むものですが、解像度は1920x1080の比率ではなく、842x595です。 1920x1080の比率では高さに正確に適合しません。
PDFから100%の品質で?x1080の比率のPNG画像を取得することは可能ですか?または842x595が100%の品質の画像を取得する最大の比率ですか?DPIを設定する必要がありますか? convert
のオプション?
これには試行錯誤が含まれ、最終的には、「最良の結果」であると見なすことができる結果については議論の余地があります。ですから、いくつかの一般的なアドバイスをさせてください:
透明な背景を取り除くには、-flatten
オプションを使用します。透明性により、結果の実際の品質を判断することが難しくなります。最終的な画像の透明度が必要な場合は、品質が確認できたら-flatten
を削除できます。
-density 300
などを使用して、高いDPI結果を取得します。 convert
の主な問題は、デフォルトで非常に低い密度を使用することです(72 DPI)。このパラメーターは、入力ファイルの前に指定する必要があります。
高DPI画像を縮小すると、さらにぼかしが生じる可能性があるため、おそらく正しいDPI値を計算して目的の解像度を実現するのがよいでしょう。
$ convert -density 100 file.pdf -flatten file100.png
$ file file100.png
file100.png: PNG image data, 827 x 1169, 8-bit colormap, non-interlaced
$ echo $((1080*10000/1169))
9238
$ convert -density 92.38 file.pdf -flatten file9238.png
$ file file9238.png
file9238.png: PNG image data, 764 x 1080, 8-bit colormap, non-interlaced
convert
が「理想的な」DPI値を単独で決定する方法があるかどうかはわかりません。
この質問をImageMagick IRCチャネルまたはフォーラムに持っていくと、さらにアドバイスが得られるはずです。使用しているPDFファイルへのリンクを提供すると役立ちます。 ;)
空の境界線をトリミングするなど、他の方法で品質を向上させることもできます。ページの半分が白の場合、解像度が大幅に低下します。 PDFテキストを再ラップして、利用可能な画面スペースを最大限に活用するソリューションもあります(例:k2pdfopt
)。
最後に、他のプログラムも試してください。これは意見の問題ですが、私はInkscapeまたはGhostScriptを直接使用することを好みます。 ImageMagickには文字が「くっついている」ため、Inkscapeではよりバランスの取れた結果が得られ、GhostScriptではぼかしのない純粋なピクセル画像をレンダリングできます(それが好きな場合-ぼやけたバージョンにはpngalpha
を使用します。 convert
と同じです)。
ImageMagick:
Inkscape:
GhostScript:
gs -r92.38 -sDEVICE=png48 -sOutputFile=ghostscript.png file.pdf
試してください:
convert -resize 1920x1080 in.pdf out.png
PDFに10ページがある場合、10個のファイルが出力されますout-1.png ... out-10.png
この答えは無視してください:ラスターファイルのサイズ変更に役立ちますが、PDFファイル(低DPIアップスケール))の結果が非常にぼやけています。