Illustratorで開いたときに特定のPNGファイルの色が歪むのはなぜですか?


11

IllustratorでiPhoneスクリーンショットを開こうとしましたが、何らかの理由で色が歪んでいます。他のアプリケーション(Photoshop、GIMP、プレビューなど)で同じファイルを開いた場合、色はうまくレンダリングされます。奇妙なことに、これは特定のスクリーンショットでのみ発生するということです。私は、Illustratorが色を歪めることなく開いたホームスクリーンのスクリーンショットもテストしました。

ただし、GIMPでは、次のようなダイアログが表示されます。

画像「IMG_1199.PNG」には、埋め込まれたカラープロファイルがあります。

ディスプレイP3

画像をRGB作業スペース(sRGB組み込み)に変換しますか?

カラープロファイルを維持するか変換するかのオプション付き。そのため、Illustratorが前述のカラープロファイルを認識しない可能性があります。

これは、電話からの元の画像[左]と、Illustratorから開いた(保存された)画像[右]です。

iPhoneキーパッドのスクリーンショット iPhoneキーパッドのスクリーンショットが歪む


更新

GIMPでカラープロファイルを変換して保存し、Illustratorでファイルを再度開くと、問題は解決します。これは、Display P3カラープロファイルが問題であるという私の疑念を確認しているようで、私の質問を多少変更します。事前に画像を事前に変換せずにIllustratorで画像を開くにはどうすればよいですか?

Illustratorのバグのようですので、Adobeにバグレポートを提出しました。レポートが最終的なものである場合、またはアドビが解決策を提供している場合は更新します。


1
サイケデリック!これを見るために錠剤を食べる人を知っています。ブライアンさん、GDSEへようこそ。ご質問ありがとうございます。このSEについて質問がある場合は、ヘルプセンターをご覧になるか、グラフィックデザインチャットにご参加ください。貢献し続け、ここであなたの時間を楽しんでください。
Vincent、

iPhoneのスクリーンショットで多くの問題がありましたが、そのようなことは一度もありません。印象的です。
Cai

P3カラープロファイルは10bppカラー(別名30ビット)を意味しますか?これはバグですか、それともAIは10bpp(ARGB 02 10 10 10)を処理できませんか?知りたい心に問いかける。(編集:明確にするために、私には手掛かりがないので、本当に知りたいです)
Yorik

奇妙なこと:GraphicsMagick identifyとLinuxの両方で、file.pngのサフィックスにもかかわらず、左側に投稿されたスクリーンショットをjpgとして識別します。これは元の/変更されていないスクリーンショットですか?サフィックスの名前を.pngに変更しましたか?多分それが問題です。接尾辞をjpgに変更して、もう一度開いてみてください。
Socowi 2016年

@Socowi Huh、それは奇妙です、私はfilemacOSでコマンドを使用して自分でテストしました。それはのように起動したJPEG image data情報ウィンドウがまだPNGファイルとして表示されていても、同様。それはImgurが写真を拡大縮小するために行うものでなければなりません。フルサイズのリンクから画像をダウンロードした場合、fileコマンドはそれをPNGファイルとして正しく認識するはずです。
ブライアン、

回答:


9

おそらく何が起こるか:スクリーンショットは16ビットのpngですが、イラストレーターはそれを8ビットの!

説明

以下の説明では、スクリーンショットは16ビットのグレースケール画像であると想定しています。つまり、すべてのピクセルは、

= 0 = 0x0000 = 0b 0000 0000 0000 0000

そして

(16ビット)白 = 2 ^ 16-1 = 65535 = 0xFFFF = 0b 1111 1111 1111 1111。

(0xは16進数を示し、0bは2進数を示します)

Illustratorはこれらの16ビットのうち8つだけをロードしているようですが、残念ながら間違ったビットが読み込まれます。最下位ビットを選択することが唯一の問題です。

0b #### #### #### ####
   \_______/ \_______/
   discarded   loaded

インポート後、illustratorは新しい最大数に応じて解釈(数値は白、黒)をスケーリングします。

(8ビット)白 = 2 ^ 8-1 = 255 = 0xFF = 0xb 1111 1111。

ピクセルの1つが0b 1111 1111 0000 00001 = 0xFF01 = 65281の値で、ほぼ白であると想定します。インポート後、値は0b 0000 0001 = 0x01 = 1、つまりほぼ黒になります。

これは、999.1を1に「丸める」ようなものです-完全に間違っています!

シミュレーション

記述された問題が私たちの問題であることをどのように確認できますか?バグをシミュレートします!

次のpythonプログラムは、上記の16ビットスクリーンショットを読み込みます。
(私を判断しないでください、それは私の最初のpythonプログラムです。)

#! /usr/bin/python
import numpy as np
import cv2

# load picture
img = cv2.imread('screen.png', 3)

# assert (by hand) that picture is loaded as 16 bit image
print img.dtype

# simulate the bug
img[:,:] &= 0x00FF # use only 8 least significant bits
img[:,:] <<= 8     # rescale

# save the picture
cv2.imwrite('bug.png',img)

シミュレートされたバグ
結果は、bug.png
クリックしてここに元のサイズのために、そしてここで OPのバージョンと比較します。

ご覧のとおり、シミュレーションではまったく同じ結果が得られます。

回避策

私は1つの回避策しか考えられません(私はイラストレーターを使用しないため):

スクリーンショットを8ビットpngに変換する

GraphicsMagickやImageMagickは、この仕事に便利なコンソールツールです。次のコマンドは、8ビットpngに変換します。

convert original.png -depth 8 converted.png

うわー、詳細な説明ありがとうございます。アドビはまだ私のバグレポートに対応していませんが、運が良ければ、Illustratorに適切な16ビットカラーのサポートが追加されることを期待しています。または、少なくとも8ビットカラーに正しく丸めます。
ブライアン

1

これがファンキーな問題です。

GIMPはすでにいくつかの手掛かりを与えており、スクリーンショットのカラープロファイルに何かがあるという疑いを確認しています。日常のsRGBおよびチャンネルごとに8ビットに変換すると、IllustratorがCMYKとしてプルしようとするときに混乱を招く可能性があります。


1

これはかなり遅いですが、簡単な回避策(Macユーザーの場合)は、PNGをプレビューで開き、PNGとしてエクスポートして、デフォルトの16ビットオプションを8ビットオプションに切り替えます。追加のソフトウェアは必要なく、数秒しかかかりません。

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