Saya harus berurusan dengan CMYK JPEG yang diekstrak dari sumber PDF. PDF dibuat dengan Photoshop.
Masalahnya adalah bahwa Photoshop menyimpan data JPEG CMYK dalam PDF / EPS menggunakan nilai "normal", sedangkan dalam JPEG yang berdiri sendiri ia menyimpan nilai yang terbalik. Jadi, ketika aliran DCTDecode diekstraksi secara bersamaan dan ditulis ke disk, file JPEG yang dihasilkan muncul terbalik.
(Ekstraksi yang sebenarnya dilakukan oleh utilitas in-house, yang hanya mengekstrak byte dari aliran DCTDecode dan menulisnya, tidak dimodifikasi, ke file yang berakhir pada .jpg
dasarnya adalah copy dan paste biner. PDF tersedia untuk proses, jika itu diperlukan.)
Karena gambar harus tetap dalam format JFIF, apakah ada cara untuk menempatkan penanda ke .jpg
file yang diekstraksi untuk membuat Photoshop membukanya dengan pengkodean yang tepat? Prosesnya harus lossless (tidak melibatkan encoding entropi lebih lanjut).
JPEG sudah mengandung APP14
penanda, dan menghapusnya tidak berpengaruh.
Di bawah ini adalah kutipan dari libjpeg
dokumen:
"... tampaknya Adobe Photoshop menulis data terbalik dalam file CMYK JPEG: 0 mewakili cakupan tinta 100%, daripada tinta 0% seperti yang Anda harapkan. ... Photoshop 3.0 [dan yang lebih baru] ... tulis YCCK yang belum diinversi dalam file EPS / JPEG ... (Tetapi polaritas data yang digunakan dalam file JPEG kosong tidak akan berubah ...) "