Ich muss mich mit CMYK-JPEGs befassen, die aus einer PDF-Quelle extrahiert wurden. Die PDFs wurden mit Photoshop erstellt.
Das Problem ist, dass Photoshop JPEG-CMYK-Daten in PDF / EPS mit "normalen" Werten speichert, während es in eigenständigen JPEGs invertierte Werte speichert. Wenn also die DCTDecode-Streams byteweise extrahiert und auf die Festplatte geschrieben werden, werden die resultierenden JPEG-Dateien invertiert angezeigt.
(Die eigentliche Extraktion erfolgt durch ein internes Dienstprogramm, das die Bytes einfach aus dem DCTDecode-Stream extrahiert und unverändert in eine Datei schreibt, die auf endet. .jpg
Es handelt sich im Grunde genommen um ein binäres Kopieren und Einfügen. Die PDFs können erneut verwendet werden Prozess, sollte das erforderlich sein.)
Gibt es eine Möglichkeit, einen Marker in die extrahierte .jpg
Datei zu setzen, damit Photoshop sie mit der richtigen Codierung öffnet , da die Bilder in ihrem JFIF-Format bleiben müssen ? Der Prozess muss verlustfrei sein (keine weitere Entropiecodierung erforderlich sein).
Die JPEGs enthalten den APP14
Marker bereits und das Entfernen hat keine Auswirkung.
Unten ist ein Zitat aus den libjpeg
Dokumenten:
"... es scheint, dass Adobe Photoshop invertierte Daten in CMYK-JPEG-Dateien schreibt: 0 steht für 100% Tintenabdeckung und nicht wie erwartet für 0% Tinte. ... Photoshop 3.0 [und neuer] ... schreibt nicht invertiertes YCCK in EPS / JPEG-Dateien ... (Die in reinen JPEG-Dateien verwendete Datenpolarität ändert sich jedoch nicht ...) "
Antworten:
Hier in Adobe-Foren gibt es das gleiche Problem mit erfolgreichen Ergebnissen: http://forums.adobe.com/message/4271028
Vielleicht ist das APP14-Tag nicht korrekt? APP14-Tags bieten mehr als nur das Vorhandensein. Auf JPEG-Tags: http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/JPEG.html#Adobe
JPEG Adobe Tags
Das APP14-Segment "Adobe" speichert Bildcodierungsinformationen für DCT-Filter. Dieses Segment kann mit dem Extra-Tag "Adobe" als Block kopiert oder gelöscht werden. Beachten Sie jedoch, dass es beim Löschen aller Metadaten nicht standardmäßig gelöscht wird, da dies das Erscheinungsbild des Bildes beeinträchtigen kann.
Aber das könnte nicht helfen, ich erinnere mich an jemanden, der erklärt, dass diese privaten Marker nicht als Leitfaden für PDF-Reader gedacht sind, sondern dass geeignete Decodierungs-Arrays vorhanden sein sollten.
Die Magie scheint zu sein
das würde die Farbzuordnung invertieren. (Ich denke, das ist ein Flag in libjpeg, etwas Ähnliches sollte in jedem ähnlichen Tool verfügbar sein.) Dekodierungsarrays sind in PDFs gemäß der PDF-Referenz hier üblich: http://partners.adobe.com/public/developer/en/pdf /PDFReference.pdf
Ich habe keine Ahnung, ob Sie diese Dekodierungsarrays in PDF-JPEGs hinzufügen können oder ob Sie dies zur Stream-Verarbeitung Ihres internen Tools hinzufügen müssen. Ich habe kein Beispiel-PDF, an dem ich arbeiten kann, daher kann ich keine weiteren Nachforschungen anstellen (außerdem ist die Referenz riesig - tl; dr - aber Sie müssen möglicherweise ..)
quelle
/Decode
Punkt[1 0 1 0 1 0 1 0]
.(Haftungsausschluss: Ich habe kein Bild zum Testen. Wenn Sie ein solches Bild von einer Filesharing-Site freigeben könnten, könnte ich es testen und gegebenenfalls Anpassungen vornehmen, um zu antworten.)
Das Problem hängt höchstwahrscheinlich mit dem fehlenden ICC-Profil zusammen.
Um ein solches Profil einzubetten (oder zu konvertieren), können Sie f.ex verwenden. ImageMagick, um diese Verluste zu beheben, ohne die Daten zu beeinflussen.
ImageMagick:
http://imagemagick.org/script/index.php
Das Befehlszeilenprogramm kann wie folgt verwendet werden, um ein ICC-Profil einzubetten:
Konvertieren Sie es optional in den nativen RGB-Farbraum.
Weitere Informationen finden Sie hier:
http://www.imagemagick.org/Usage/formats/#color_profile
Sie können ICC-Profile hier herunterladen:
http://www.adobe.com/support/downloads/detail.jsp?ftpID=4074
quelle