CMYK JPEG được trích xuất từ ​​PDF xuất hiện ngược


8

Tôi phải đối phó với các CMYK JPEG được trích xuất từ ​​nguồn PDF. Các tệp PDF đã được tạo bằng Photoshop.

Vấn đề là Photoshop lưu trữ dữ liệu JPEG CMYK trong PDF / EPS bằng cách sử dụng các giá trị "bình thường", trong khi ở các JPEG độc lập, nó lưu trữ các giá trị ngược. Vì vậy, khi các luồng DCTDecode được trích xuất tạm thời và ghi vào đĩa, các tệp JPEG kết quả sẽ xuất hiện đảo ngược.

(Việc trích xuất thực tế được thực hiện bởi một tiện ích nội bộ, đơn giản là trích xuất các byte từ luồng DCTDecode và ghi chúng, không được sửa đổi, vào một tệp kết thúc trong .jpgđó về cơ bản là sao chép và dán nhị phân. Các tệp PDF có sẵn để gửi lại quá trình, nên được yêu cầu.)

Vì các hình ảnh phải ở định dạng JFIF của chúng, có cách nào để đặt một điểm đánh dấu vào .jpgtệp được trích xuất để làm cho Photoshop mở nó với mã hóa phù hợp không? Quá trình phải được mất (không liên quan đến mã hóa entropy).

Các JPEG đã chứa APP14điểm đánh dấu và loại bỏ nó không có hiệu lực.

Dưới đây là một trích dẫn từ các libjpegtài liệu:

"... có vẻ như Adobe Photoshop ghi dữ liệu đảo ngược trong các tệp CMYK JPEG: 0 đại diện cho độ phủ mực 100%, thay vì 0% như bạn mong đợi. ... Photoshop 3.0 [và mới hơn] ... viết YCCK không đảo ngược trong các tệp EPS / JPEG ... (Nhưng phân cực dữ liệu được sử dụng trong các tệp JPEG trần sẽ không thay đổi ...) "


2
Bạn có thể tự động hàng loạt chuyển đổi các JPEG đã xuất trở lại thành mã hóa CMYK thông thường không? Tại sao bạn cần gắn cờ các tệp được giải nén - bạn nói tất cả các tệp PDF được tạo trong Photoshop?
e100

Làm thế nào để bạn trích xuất JPEG từ các tệp PDF? Bạn đã có một thư mục chứa nhiều JPEG mà tất cả cần phải được chuyển đổi? Sẽ tốt hơn nếu thêm thông tin này vào câu hỏi ban đầu của bạn.
e100

Nếu bạn đang trích xuất dữ liệu JPEG theo chương trình, bạn cũng có thể tự động hóa số học cần thiết trên các giá trị màu cùng một lúc không? Không chắc cách này dễ dàng. Vâng, bạn đã đúng, tôi thực sự tự hỏi liệu bạn có kiểm soát quá trình trích xuất hay chỉ phải xử lý đầu ra của nó
e100

@unign: nếu các giá trị màu được lưu trữ dưới dạng float, có thể có lỗi lớn, nhưng nếu chúng được lưu dưới dạng số nguyên, thì việc đảo ngược chúng không phải là vấn đề. Tôi cảm thấy như bạn đã bỏ qua một phần của quy trình làm việc trong câu hỏi của bạn. Tuy nhiên, xin lưu ý rằng CMYK không được hỗ trợ bởi định dạng JPEG, mà là JPG2000. Tôi không biết điều này có tạo ra sự khác biệt cho sự lựa chọn thư viện của bạn không ...
horatio

2
Tôi đang đề cập đến tiêu chuẩn JFIF ban đầu hỗ trợ 1 hoặc 3 màu (24 bit). Thiếu hỗ trợ CMYK đã được sửa chữa trong một tiêu chuẩn sau này. Nó từng là một vấn đề khi mọi người sẽ tạo jpeg từ các nguồn CMYK và thử và sử dụng chúng trên các trang web. Theo như quy trình làm việc, bạn đã phản đối đề xuất sử dụng tự động hàng loạt của e100. Photoshop hỗ trợ này. Nếu màu sắc được đảo ngược đơn giản, thì Photoshop có thể chạy một quy trình hàng loạt như "mở, đảo ngược, lưu dưới dạng" trên một số lượng tệp tùy ý.
horatio

Câu trả lời:


5

Ở đây trên các diễn đàn Adobe là một vấn đề tương tự với kết quả thành công: http://forums.adobe.com/message/4271028

Có lẽ thẻ APP14 không đúng? Có nhiều thẻ APP14 hơn nó chỉ ở đó. Trên thẻ JPEG: http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/JPEG.html#Adobe

Thẻ Adobe JPEG

Phân đoạn APP14 "Adobe" lưu trữ thông tin mã hóa hình ảnh cho các bộ lọc DCT. Phân đoạn này có thể được sao chép hoặc xóa dưới dạng một khối bằng thẻ Extra "Adobe", nhưng lưu ý rằng nó không bị xóa theo mặc định khi xóa tất cả siêu dữ liệu vì nó có thể ảnh hưởng đến sự xuất hiện của hình ảnh.

╔════════╦══════════════════╦══════════╦════════════════════════════════════════════╗
║ Index2 ║     Tag Name     ║ Writable ║               Values / Notes               ║
╠════════╬══════════════════╬══════════╬════════════════════════════════════════════╣
║      0 ║ DCTEncodeVersion ║ N        ║                                            ║
║      1 ║ APP14Flags0      ║ N        ║ Bit 15 = Encoded with Blend=1 downsampling ║
║      2 ║ APP14Flags1      ║ N        ║                                            ║
║      3 ║ ColorTransform   ║ N        ║ 0 = Unknown (RGB or CMYK)                  ║
║        ║                  ║          ║ 1 = YCbCr                                  ║
║        ║                  ║          ║ 2 = YCCK                                   ║
╚════════╩══════════════════╩══════════╩════════════════════════════════════════════╝

Nhưng điều đó có thể không giúp ích gì, tôi nhớ lại ai đó nói rằng những điểm đánh dấu riêng tư này không có ý định hướng dẫn Trình đọc PDF nhưng phải giải mã mảng thích hợp.

Phép thuật dường như là

/ Giải mã 0 1 0 1 0 1 0 1

mà sẽ đảo ngược ánh xạ màu. (Tôi đoán đó là một cờ trong libjpeg, một cái gì đó tương tự nên có sẵn trong bất kỳ công cụ tương tự nào.) Giải mã mảng là phổ biến trong các tệp PDF theo Tài liệu tham khảo PDF ở đây: http://partners.adobe.com/public/developer/en/pdf /PDFReference.pdf

Tôi không có đầu mối nếu bạn có thể thêm các mảng giải mã này vào các tệp PDF JPEG hoặc bạn có cần thêm nó vào xử lý luồng của công cụ nội bộ của mình không. Tôi không có ví dụ PDF để làm việc, vì vậy tôi không thể thực hiện bất kỳ nghiên cứu nào nữa (ngoài ra, tài liệu tham khảo rất lớn - tl; dr - nhưng bạn có thể phải ..)


1
Điều này giúp tôi có được một Photoshop CMYK JPEG được nhúng vào PDF để hiển thị chính xác. Tôi đã phải đặt /Decodemục từ điển của Image XObject thành [1 0 1 0 1 0 1 0].
Brecht Machiels

Điều này cũng giúp tôi và tôi có thể xác minh rằng, CMYK JPEG đã được đảo ngược hiện hiển thị chính xác. Những cái RGB không cần điều này cho tôi ... Tuy nhiên, tôi có một câu hỏi, liệu điều này có đúng với TẤT CẢ các hình ảnh CMYK, không chỉ một số không? Ngoài ra, điều này (luôn luôn) in chính xác? (Như vậy không chỉ dành cho màn hình)
Marius

0

(Từ chối trách nhiệm: Tôi không có hình ảnh nào để kiểm tra - nếu bạn có thể chia sẻ hình ảnh đó bởi một trang chia sẻ tệp, tôi có thể kiểm tra và điều chỉnh để trả lời nếu cần).

Vấn đề rất có thể liên quan đến hồ sơ ICC bị thiếu.

Để nhúng (hoặc chuyển đổi) một hồ sơ như vậy, bạn có thể sử dụng f.ex. ImageMagick để thực hiện việc mất dữ liệu này mà không ảnh hưởng đến dữ liệu.

ImageMagick:
http://imagemagick.org/script/index.php

Tiện ích dòng lệnh có thể được sử dụng như thế này để nhúng hồ sơ ICC:

convert cmyk.jpg -profile USWebCoatedSWOP.icc cmyk_w_icc.jpg

Tùy chọn chuyển đổi nó sang không gian màu RGB gốc.

Xem tại đây để biết thêm chi tiết:
http://www.imagemagick.org/Usage/formats/#color_profile

Bạn có thể tải xuống hồ sơ ICC từ đây:
http://www.adobe.com/support/doads/detail.jsp?ftpID=4074

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.