it-swarm.com.de

Wie kann ich ein PNG in hoher Qualität in ein PDF konvertieren), damit es nicht verschwommen oder unscharf wird?

Es gibt viele Fragen, wie man eine PDF - Datei in ein PNG-Bild konvertiert, aber ich möchte eine schöne, scharfe PNG-Datei nehmen und sie einfach einwickeln oder einbetten a PDF Datei, ohne dass sie verschwommen oder verschwommen aussieht.

Mir ist klar, dass ich mit installiertem imagemagic eine einfache Konvertierung durchführen kann wie:

convert sample.png sample.pdf

Ich habe auch viele Schalter ausprobiert, um die Tiefe und auch die Qualitätseinstellung einzustellen:

convert -quality 100 sample.png sample.pdf

Das PDF) erscheint jedoch immer noch verschwommen/verschwommen.

Hier ist ein Beispielbild:

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

Als PNG ist es frisch und sauber. Wenn ich es in ein PDF konvertiere, sieht es auch bei gleicher Größe verschwommen aus:

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

Wie kann ich PNG in hoher Qualität in ein PDF konvertieren)?

59
cwd

Versuchen Sie es mit -density Möglichkeit. Die Standardauflösung beträgt 72 Punkte pro Zoll. Versuchen Sie also etwas wie -density 300.

Referenz siehe -density in der Dokumentation zu den ImageMagick-Befehlszeilenoptionen.

36
user32208

Es kann sehr kompliziert sein, eine gute PDF-Ausgabe von convert zu erhalten. Versuchen img2pdf stattdessen. Aus der Readme:

Verlustfreie Konvertierung von Bildern in PDF ohne unnötige Neucodierung von JPEG- und JPEG2000-Dateien. Somit kein Qualitätsverlust und keine unnötig große Ausgabedatei.

Zur Verdeutlichung: PDF kann verlustfreie JPEG 2000-Bilder einbetten (und die meisten Leser scheinen sie zu unterstützen ). Diese Konvertierung ist also völlig verlustfrei:

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

(Vorausgesetzt, der JP2-Delegat ist verfügbar: check identify -list format | grep JP2.)

22
Brian Z

Ich bin mir fast sicher, dass das, was Sie als Qualitätsverlust in der PDF-Datei wahrnehmen, nur eine Auswirkung der Anti - Aliasing Funktion Ihres PDF-Viewers ist.

Wenn Sie evince zum Anzeigen der PDF-Datei verwenden, wird die Anti-Aliasing-Funktion bei einem bestimmten Zoom automatisch ausgeschaltet (300% in meinem Schnelltest). Sie können dies deutlich sehen, wenn Sie weiter hineinzoomen - Sie werden feststellen, dass Pixel irgendwann plötzlich deutlich sichtbar werden. Dies ist der Punkt, an dem das Anti-Aliasing ausgeschaltet sein muss, um eine genaue Bildprüfung zu ermöglichen.

14
rozcietrzewiacz

Brian Z oben lieferte die unten stehende, korrekte, vollständig umkehrbare und verlustfreie Methode (vorausgesetzt, der Konvertierungsschritt ist tatsächlich verlustfrei, was meiner Meinung nach der Fall ist oder zumindest sein sollte), um PNGs in ein PDF zu schreiben. Sie müssen von png zu verlustfreiem jp2 konvertieren, um mit PDF Struktur/Leser (glaube ich) kompatibel zu sein.

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

Es ist jedoch erwähnenswert, dass Sie die PNG-Dateien selbst direkt an img2pdf senden können, wie:

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

Dies erzeugt die kleinste PDF-Datei und fügt das rohe Hex des PNG verlustfrei in Objekte im PDF ein *.

* Der Nachteil ist, dass dieser Prozess im Gegensatz zur Verwendung von jp2 nicht umkehrbar ist. Die Kopf-/Fußzeilen- und Chunk-Kopf-/Fußzeilendaten wurden aus dem eingefügten PNG entfernt (wodurch die Dateien sogar noch kleiner werden!) Und nur die Rohbilddaten belassen (die gelöschten Metadaten werden in die PDF-Struktur integriert). vermutlich, um das pdf zu "hacken", um rohes png anzuzeigen, das technisch nicht mit dem container kompatibel ist. Es wird in Firefox einwandfrei angezeigt und kann in allen modernen Lesegeräten einwandfrei angezeigt werden. Wenn PNG jedoch nicht mit dem Container kompatibel ist, können strenge Lesegeräte die unformatierten PNG-Daten möglicherweise nicht rendern (da sie es nicht erwarten/korrekt verarbeiten sollten).

Hier finden Sie ein extrem rohes Bash-Skript, mit dem ich die PNG-Dateien mit passenden Hashes extrahieren und rekonstruieren konnte, die mit denen übereinstimmen, die für die Eingabe in das PDF verwendet wurden. https://github.com/jack4455667788/RebuildRawPNGExtractedFromPDF

4
Jack Hadley

PDF ist ein Vektorformat (d. H. Die Datei enthält eine Beschreibung der zu zeichnenden Linien), während andere Formate (JPG, PNG) Rasterformate sind (die Datei beschreibt, welche Farbe jedes Pixel gemalt werden soll). Wenn Sie ein PDF in die Luft jagen), sind es immer noch nur scharfe Linien; JPG und PNG zeigen die Pixelierung.

(OK, OK, ich habe gelogen. A PDF kann auch ein Raster sein).

2
vonbrand

Ich denke, dass für png-to-pdf -density Der Parameter eher klein als groß sein sollte. Sie könnten etwas wie convert -quality 100 -density 50 Versuchen

2
user39384