PDFから抽出されたCMYK JPEGが反転して表示される


8

PDFソースから抽出されたCMYK JPEGを処理する必要があります。PDFはPhotoshopで作成されました。

問題は、PhotoshopがJPEG CMYKデータを「通常の」値を使用してPDF / EPSに保存するのに対し、スタンドアロンJPEGは反転した値を保存することです。したがって、DCTDecodeストリームがバイト単位で抽出されてディスクに書き込まれると、結果のJPEGファイルは反転して表示されます。

(実際の抽出は、DCTDecodeストリームからバイトを抽出し、変更せずに、末尾が.Itであるファイルにバイトを書き込む、社内のユーティリティによって行われます。これは.jpg基本的にバイナリのコピーアンドペーストです。PDFは再利用できます。プロセスが必要な場合)

画像はJFIF形式のままでなければならないので、抽出した.jpgファイルにマーカーを配置して、Photoshopで適切なエンコードでファイルを開く方法はありますか?プロセスはロスレスである必要があります(それ以上のエントロピーエンコーディングは必要ありません)。

JPEGには既にAPP14マーカーが含まれており、マーカーを削除しても効果はありません。

以下はlibjpegドキュメントからの引用です:

「... Adob​​e PhotoshopがCMYK JPEGファイルに反転データを書き込むようです。0は、期待どおりに0%インクではなく100%インクカバレッジを表します。... Photoshop 3.0 [およびそれ以降] ...非反転YCCKを書き込みますEPS / JPEGファイルで...(ただし、ベアJPEGファイルで使用されるデータの極性は変更されません...) "


2
エクスポートされたJPEGの変換をバッチ自動化して通常のCMYKエンコーディングに戻すことはできませんか?抽出されたファイルにフラグを付ける必要があるのはなぜですか?Photoshopで作成されたすべてのPDFを言うと思いますか?
e100 2012年

PDFからJPEGをどのように抽出しますか?すべての変換が必要な多くのJPEGを含むフォルダはすでにありますか?この情報を元の質問に追加するとよいでしょう。
e100 2012年

プログラムでJPEGデータを抽出する場合、同時にカラー値に必要な演算も自動化できますか?これがどれほど簡単かわかりません。はい、そうです。抽出プロセスを制御していたのか、それとも出力を処理しなければならなかったのか、本当に疑問に思っていました
e100

@unsigned:カラー値が浮動小数点数として格納されている場合、大きなエラーが発生する可能性がありますが、整数値として格納されている場合は、反転することはそれほど問題にはなりません。質問のワークフローの一部を省いたような気がします。ただし、CMYKはJPEG形式ではなく、JPG2000でサポートされていることに注意してください。これがライブラリの選択に
影響を与える

2
1色または3色(24ビット)をサポートするオリジナルのJFIF標準を参照しています。CMYKのサポートの欠如は、後の標準で修正されました。人々がCMYKソースからjpegを作成し、Webサイトでそれらを使用しようとするとき、それは以前は問題でした。ワークフローに関しては、バッチ自動化の使用に関するe100の提案に反対しました。Photoshopはこれをサポートしています。色が単に反転している場合、Photoshopは任意の数のファイルに対して「開く、反転、別名で保存」などのバッチプロセスを実行できます。
horatio

回答:


5

Adobeフォーラムのここでも同じ問題があり、成功した結果が得られます。http//forums.adobe.com/message/4271028

たぶん、APP14タグは正しくありませんか?APP14タグには、そこにあるだけではありません。JPEGタグ:http : //www.sno.phy.queensu.ca/~phil/exiftool/TagNames/JPEG.html#Adobe

JPEG Adob​​eタグ

「Adobe」APP14セグメントには、DCTフィルターの画像エンコーディング情報が格納されます。このセグメントは、追加の「Adobe」タグを使用してブロックとしてコピーまたは削除できますが、画像の外観に影響を与える可能性があるため、すべてのメタデータを削除しても、デフォルトでは削除されません。

╔════════╦══════════════════╦══════════╦════════════════════════════════════════════╗
║ 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                                   ║
╚════════╩══════════════════╩══════════╩════════════════════════════════════════════╝

しかし、それは役に立たないかもしれませんが、これらのプライベートマーカーはPDFリーダーをガイドすることを目的としていないが、適切なデコード配列はそうである必要があると述べた人を思い出します。

魔法のようです

/デコード0 1 0 1 0 1 0 1

これにより、カラーマッピングが反転します。(これはlibjpegのフラグだと思います。類似のツールで類似のものが利用できるはずです。)デコード配列は、PDFのリファレンス(http://partners.adobe.com/public/developer/en/pdf)によるとPDFで一般的です。 /PDFReference.pdf

これらのデコード配列をPDF JPEGに追加できるのか、それを社内ツールのストリーム処理に追加する必要があるのか​​はわかりません。作業するPDFの例がないので、これ以上調査することはできません(また、参照は巨大です-tl; dr-しかし、あなたはそうしなければならないかもしれません。)


1
これにより、Photoshop CMYK JPEGをPDFに埋め込んで正しく表示することができました。Image XObjectのディクショナリ/Decode項目をに設定する必要がありました[1 0 1 0 1 0 1 0]
Brecht Machiels

これは私にも役立ち、反転されたCMYK JPEGが正しくレンダリングされるようになったことを確認できます。RGBのものはこれを私に必要としません...一つ質問があります、これはいくつかだけでなくすべてのCMYK画像に当てはまりますか?また、これは(常に)正しく印刷されますか?(したがって、画面だけではありません)
マリウス

0

(免責事項:私はテストする画像がありません-ファイル共有サイトでそのような画像を共有できれば、必要に応じてテストして答えを調整することができます)。

問題は、ICCプロファイルの欠落に関連している可能性が高いです。

このようなプロファイルを埋め込む(または変換する)には、f.exを使用できます。ImageMagickは、データに影響を与えずにこの損失を回避します。

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

コマンドラインユーティリティを次のように使用して、ICCプロファイルを埋め込むことができます。

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

必要に応じて、ネイティブRGB色空間に変換します。

詳細については、こちらをご覧ください:http :
//www.imagemagick.org/Usage/formats/#color_profile

ここからICCプロファイルをダウンロードできます。http
//www.adobe.com/support/downloads/detail.jsp?ftpID = 4074

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.