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 ...) "
Jawaban:
Di sini, di forum Adobe adalah masalah yang sama dengan hasil yang sukses: http://forums.adobe.com/message/4271028
Mungkin tag APP14 tidak benar? Ada lebih banyak untuk tag APP14 daripada hanya ada di sana. Pada tag JPEG: http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/JPEG.html#Adobe
Tag JPEG Adobe
Segmen "Adobe" APP14 menyimpan informasi penyandian gambar untuk filter DCT. Segmen ini dapat disalin atau dihapus sebagai blok menggunakan tag "Adobe" Ekstra, tetapi perhatikan bahwa itu tidak dihapus secara default ketika menghapus semua metadata karena dapat memengaruhi tampilan gambar.
Tapi itu mungkin tidak membantu, saya ingat seseorang yang menyatakan bahwa penanda pribadi ini tidak dimaksudkan untuk memandu PDF-Readers tetapi array decode yang tepat harus.
Keajaiban tampaknya
yang akan membalikkan pemetaan warna. (Saya kira itu adalah bendera di libjpeg, sesuatu yang serupa harus tersedia di alat serupa). Array dekode adalah umum dalam PDF sesuai dengan Referensi PDF di sini: http://partners.adobe.com/public/developer/en/pdf /PDFReferensi.pdf
Saya tidak tahu apakah Anda dapat menambahkan larik dekode ini ke dalam JPEG PDF atau apakah Anda perlu menambahkannya ke pemrosesan aliran alat in-house Anda. Saya tidak punya contoh PDF untuk dikerjakan, jadi saya tidak bisa melakukan penelitian lebih lanjut (juga, referensi sangat besar - tl; dr - tetapi Anda mungkin harus ..)
sumber
/Decode
item kamus Image XObject ke[1 0 1 0 1 0 1 0]
.(Penafian: Saya tidak memiliki gambar untuk diuji - jika Anda dapat membagikan gambar tersebut dengan situs berbagi file saya dapat menguji dan membuat penyesuaian untuk menjawab jika diperlukan).
Masalahnya kemungkinan besar terkait dengan hilangnya profil ICC.
Untuk menanamkan (atau mengonversi) profil semacam itu, Anda dapat menggunakan f.ex. ImageMagick untuk melakukan loss-les ini tanpa memengaruhi data.
ImageMagick:
http://imagemagick.org/script/index.php
Utilitas baris perintah dapat digunakan karena ini untuk menanamkan profil ICC:
Secara opsional, konversikan ke ruang warna RGB asli.
Lihat di sini untuk detail lebih lanjut:
http://www.imagemagick.org/Usage/formats/#color_profile
Anda dapat mengunduh profil ICC dari sini:
http://www.adobe.com/support/downloads/detail.jsp?ftpID=4074
sumber