web-dev-qa-db-ja.com

PNGを高品質でPDFに変換して、ぼやけたりぼやけたりしないようにするにはどうすればよいですか?

PDFファイルをPNG画像に変換する方法については多くの質問がありますが、私は素敵なシャープなPNGファイルを取得して、基本的にそれをラップするか埋め込むだけですa PDFファイルをぼやけたりぼやけさせたりせずに。

Imagemagicをインストールすると、次のような簡単な変換を実行できることがわかります。

convert sample.png sample.pdf

私は深さを設定するために多くのスイッチと品質設定も試しました:

convert -quality 100 sample.png sample.pdf

ただし、PDFはまだぼやけている/ぼやけているように見えます。

これがサンプル画像です:

http://img406.imageshack.us/img406/6461/picture3mu.png

Pngのように、くっきりときれいです。 PDFに変換すると、同じサイズでもぼやけて見えます。

図4.png http://img803.imageshack.us/img803/9969/picture4at.png

PNGを高品質のPDFに変換するにはどうすればよいですか?

59
cwd

-densityオプションを使用してみてください。デフォルトの解像度は72ドット/インチです。 -density 300などを試してください。

参照については、ImageMagickコマンドラインオプションドキュメントの -density を参照してください。

36
user32208

convertから適切なpdf出力を取得するのは非常に複雑になる可能性があります。お試しください img2pdf 代わりに。 Readmeから:

JPEGおよびJPEG2000ファイルを不必要に再エンコードすることなく、画像をロスレスでPDFに変換します。したがって、品質の損失や不要な大きな出力ファイルはありません。

明確にするために:PDFロスレスJPEG 2000画像を埋め込むことができます(そして ほとんどのリーダーはそれらをサポートしているようです )。したがって、この変換は完全にロスレスです:

convert sample.png -quality 0 sample.jp2
img2pdf -o sample.pdf sample.jp2

(もちろん、JP2デリゲートが利用可能であると仮定します:チェックidentify -list format | grep JP2。)

22
Brian Z

私はあなたがPDFの品質の損失としてあなたが感じることはあなたのPDFビューアの反作用の単なる影響であるとほぼ確信しています- エイリアス 機能。

evinceを使用してPDFを表示すると、特定のズーム(私のクイックテストでは300%)でアンチエイリアス機能が自動的にオフになることがわかります。ズームインし続けると、それが鮮やかにわかります。ある時点で、ピクセルが突然はっきりと見えるようになります。これが、正確な画像検査を可能にするためにアンチエイリアスをオフにする必要があるポイントです。

14
rozcietrzewiacz

上記のブライアンZは、pngをpdfに入れるための正しい、完全な可逆、およびロスレス(変換ステップが実際にはロスレスであると想定していますが、少なくともそうであると想定しています)の方法を提供しています。 PDF構造/リーダー(と思います)に準拠するためには、pngからロスレスjp2に変換する必要があります。

$ convert sample.png -quality 0 sample.jp2
$ img2pdf -o sample.pdf sample.jp2

ただし、次のように.pngファイル自体を直接img2pdfに提供できることに注意してください。

$ img2pdf -o sample.pdf sample-page1.png <sample-page2.png ...>

これにより、最小のPDFファイルが生成され、PNGの生の16進数がPDF内のオブジェクトにロスレスで挿入されます*。

*欠点は、jp2を使用する場合とは異なり、このプロセスを元に戻すことができないことです。ヘッダー/フッターとチャンクヘッダー/フッターのデータが挿入されたpngから取り除かれ(実際にはファイルがさらに小さくなります!)、生の画像データのみが残ります(削除されたメタデータはpdf構造に統合されています)。おそらくPDFを「ハッキング」して、コンテナに技術的に準拠していないraw pngを表示します。 Firefoxで正常に表示され、すべての最新のリーダーで正常に表示される可能性がありますが、pngがコンテナに準拠していない場合、厳密なリーダーは生のpngデータをレンダリングしない可能性があります(期待どおりに正しく処理されないため)。

ここでは、pdfへの入力に使用されるハッシュと一致するハッシュを使用してpngファイルを抽出および再構築するために機能した非常に生のbashスクリプトを見つけることができます。 https://github.com/jack4455667788/RebuildRawPNGExtractedFromPDF

4
Jack Hadley

PDFはベクター形式(つまり、ファイルには描画する線の説明が含まれています)ですが、他の形式(JPG、PNG)はラスター形式です(ファイルは各ピクセルをペイントする色を記述しています)。 PDF=を吹き飛ばしても、それはまだ鋭い線です; JPGとPNGはピクセレーションを示します。

(OK、OK、私は嘘をついた。APDFはラスターにすることもできる)。

2
vonbrand

私はpng-to-pdfの-densityパラメータを大きくするのではなく小さくすべきだと思います。 convert -quality 100 -density 50のようなものを試すことができます

2
user39384