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 ...) "