Es gibt eine Menge Fragen darüber, wie man eine PDF-Datei in ein PNG-Bild konvertiert, aber ich möchte eine schöne, scharfe PNG-Datei nehmen und sie einfach umschließen oder in eine PDF-Datei einbetten, ohne dass sie unscharf oder unscharf aussieht verschwommen.
Mir ist klar, dass ich mit imagemagic eine einfache Konvertierung durchführen kann:
convert sample.png sample.pdf
Ich habe auch viele Schalter ausprobiert, um die Tiefe und auch die Qualität einzustellen:
convert -quality 100 sample.png sample.pdf
Die PDF-Datei 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:
Picture 4.png http://img803.imageshack.us/img803/9969/picture4at.png
Wie kann ich PNG in ein PDF in hoher Qualität konvertieren?
\usepackage[pdftex, final]{graphicx}
und\includegraphics[width=516px]{calendar.png}
zum Beispiel.Antworten:
Versuchen Sie es mit der
-density
Option. Die Standardauflösung beträgt 72 Punkte pro Zoll. Also probier mal sowas-density 300
.Informationen hierzu finden Sie
-density
in der Dokumentation zu den ImageMagick-Befehlszeilenoptionen.quelle
with density 300
bei einem Beispielbild verloren? Ich denke, das Ergebnis hängt von der Eingabe ab. Ein neuer Thread dazu hier unix.stackexchange.com/q/292025/16920Es kann sehr kompliziert sein, eine gute PDF-Ausgabe zu erhalten
convert
. Versuchen Sie esimg2pdf
stattdessen. Aus der Readme:Zur Verdeutlichung: PDF kann verlustfreie JPEG 2000-Bilder einbetten (und die meisten Leser scheinen diese zu unterstützen ). Diese Konvertierung ist also völlig verlustfrei:
(Vorausgesetzt, der JP2-Delegierte ist verfügbar: check
identify -list format | grep JP2
.)quelle
convert sample.png -quality 0 sample.jp2; img2pdf -o sample.pdf sample.jp2
. (Vorausgesetzt, der JP2-Delegierte ist verfügbar: checkidentify -list format | grep JP2
.)convert
tiff und danntiff2pdf
.-quality 0
?-quality 100
stattdessen sein?Ich bin fast sicher , dass das, was Sie als Qualitätsverlust in der PDF wahrnehmen, ist nur ein Effekt Ihres PDF - Viewer ‚s Anti - Aliasing - Funktion.
Wenn Sie
evince
zum Anzeigen der PDF-Datei verwenden, wird die Antialiasing-Funktion bei einem bestimmten Zoom automatisch deaktiviert (300% in meinem Schnelltest). Sie können dies deutlich sehen, wenn Sie weiter hineinzoomen - Sie werden feststellen, dass Pixel plötzlich deutlich sichtbar werden. Dies ist der Punkt, an dem das Anti-Aliasing ausgeschaltet sein muss, um eine präzise Bildprüfung zu ermöglichen.quelle
Brian Z stellte oben das Folgende zur Verfügung, das die korrekte, vollständig umkehrbare und verlustfreie Methode ist (vorausgesetzt, der Konvertierungsschritt ist tatsächlich verlustfrei, was meiner Meinung nach auch so ist oder zumindest sein sollte), um PNGs in ein PDF-Dokument einzufügen. Sie müssen von png zu verlustfreiem jp2 konvertieren, um mit der PDF-Struktur / den PDF-Readern kompatibel zu sein (glaube ich).
Es ist jedoch erwähnenswert, dass Sie die .png-Dateien direkt an img2pdf senden können, wie:
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 zu jp2 nicht umkehrbar ist. Die Header- / Footer- und Chunk-Header- / Footer-Daten wurden aus dem eingefügten PNG entfernt (wodurch die Dateien sogar noch kleiner werden!), Sodass nur die Rohdaten des Bildes übrig bleiben (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 gut angezeigt und kann in allen modernen Lesern gut angezeigt werden. Wenn jedoch png nicht mit dem Container kompatibel ist, werden die rohen png-Daten möglicherweise nicht von strengen Lesern gerendert (da sie dies nicht erwarten / korrekt verarbeiten sollten).
Hier finden Sie ein extrem rohes Bash-Skript, mit dem ich die PNG-Dateien mit passenden Hashes zu denjenigen, die für die Eingabe in das PDF verwendet wurden, extrahieren und rekonstruieren konnte. https://github.com/jack4455667788/RebuildRawPNGExtractedFromPDF
quelle
PDF ist ein Vektorformat (dh die Datei enthält eine Beschreibung der zu zeichnenden Linien), während andere Formate (JPG, PNG) Rasterformate sind (die Datei beschreibt, welche Farbe für jedes Pixel gezeichnet werden soll). Wenn Sie eine PDF-Datei in die Luft sprengen, handelt es sich immer noch um scharfe Linien. JPG und PNG zeigen die Pixelung.
(OK, OK, ich habe gelogen. Ein PDF kann auch ein Raster sein).
quelle
Ich denke, dass für png-to-pdf-
-density
Parameter eher klein als groß sein sollte. Sie könnten so etwas versuchenconvert -quality 100 -density 50
quelle