Illustrator에서 열 때 특정 PNG 파일의 색상이 왜곡되는 이유는 무엇입니까?


11

Illustrator에서 iPhone 스크린 샷을 열려고하는데 어떤 이유로 인해 색상이 왜곡됩니다. 다른 응용 프로그램 (Photoshop, GIMP, Preview 등)에서 동일한 파일을 열면 색상이 제대로 렌더링됩니다. 궁금한 점은 홈 화면의 스크린 샷을 테스트했을 때 특정 스크린 샷에서만 발생한다는 것입니다. Illustrator는 색상을 왜곡하지 않고 열었습니다.

그러나 김프에서는 다음과 같은 대화 상자가 나타납니다.

'IMG_1199.PNG'이미지에는 색상 프로파일이 포함되어 있습니다.

디스플레이 P3

이미지를 RGB 작업 공간 (sRGB 내장)으로 변환 하시겠습니까?

색상 프로파일을 유지하거나 변환하는 옵션이 있습니다. Illustrator에서 위에서 언급 한 색상 프로파일을 인식하지 못할 수 있습니다.

다음은 휴대 전화에서 직접 가져온 원본 이미지 [왼쪽]와 Illustrator에서 열린 (저장된) 이미지입니다 [오른쪽] :

아이폰 키패드 스크린 샷 iPhone 키패드 스크린 샷 왜곡


최신 정보

김프에서 색상 프로파일을 변환하고 저장 한 다음 Illustrator에서 파일을 다시 열면 문제가 해결됩니다. 이것은 Display P3 색상 프로파일이 문제라는 것을 의심하는 것으로 보입니다. 제 질문을 다소 변경합니다. 먼저 이미지를 먼저 변환하지 않고 Illustrator에서 이미지를 열 수 있습니까?

Illustrator의 버그 일 수 있으므로 Adobe에 버그 보고서를 제출했습니다. 보고서가 확정적이거나 Adobe에서 솔루션을 제공하는 경우 업데이트하겠습니다.


1
환각! 나는 이것을보기 위해 약을 먹는 사람들을 알고있다. Bryan, GDSE에 오신 것을 환영합니다. 질문 해 주셔서 감사합니다. 이 SE에 대해 궁금한 점이 있으면 도움말 센터를 보거나 자유롭게 그래픽 디자인 채팅 에 참여하십시오 ! 계속 기여하고 시간을 보내십시오.
Vincent

iPhone 스크린 샷에 많은 문제가 있었지만 결코 그런 적이 없었습니다. 감동적인.
Cai

P3 색상 프로파일은 10bpp 색상 (일명 30 비트)을 의미합니까? 버그입니까, 아니면 AI가 10bpp (ARGB 02 10 10 10)를 처리 할 수 ​​없습니까? 질문하는 마음은 알고 싶다. (편집 : 분명히하기 위해, 나는 실마리가 없기 때문에 정말로 알고 싶다)
Yorik

이상 : GraphicsMagick 's identify및 Linux ' 모두 file왼쪽에 게시 된 스크린 샷을 .png 접미사에도 불구하고 jpg로 식별합니다. 원본 / 수정되지 않은 스크린 샷입니까? 접미사 이름을 .png로 바 꾸었습니까? 아마도 그게 문제 일 것입니다. 접미사를 jpg로 변경 한 후 다시여십시오.
Socowi

@ Socowi Huh, 이상 file합니다. macOS 에서 명령을 사용하여 직접 테스트했습니다 . 그것은으로 등장 JPEG image data뿐만 아니라 심지어 PNG 파일로 여전히 정보 창 표시를하지만. Imgur가 사진의 크기를 조정하기 위해 수행하는 작업이어야합니다. 당신이에서 이미지를 다운로드하는 경우 전체 화면으로 링크file 명령은 PNG 파일로 제대로 인식해야한다.
Bryan

답변:


9

발생할 수있는 일 : 스크린 샷은 16 비트 png이지만 일러스트 레이터는 8 비트 (!) 비트 만 사용하여 8 비트 png로 읽습니다.

설명

다음 설명에서는 스크린 샷이 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

가져온 후에 일러스트 레이터는 새로운 최대 수에 따라 해석 (흰색은 검은 색)의 크기를 조정합니다.

(8 비트) 흰색 = 2 ^ 8-1 = 255 = 0xFF = 0xb 1111 1111.

픽셀 중 하나의 값이 0b 1111 1111 0000 00001 = 0xFF01 = 65281이라고 가정하면 거의 흰색입니다. 가져 오기 후 값은 0b 0000 0001 = 0x01 = 1이며 거의 검은 색입니다.

"반올림"999.1에서 1과 같습니다 – 완전히 잘못되었습니다!

시뮬레이션

설명 된 문제가 우리의 문제인지 어떻게 확신 할 수 있습니까? 우리는 버그를 시뮬레이트합니다!

다음 파이썬 프로그램은 위에서 설명한 16 비트 스크린 샷을로드합니다.
(나를 판단하지 마십시오. 그것은 첫 번째 파이썬 프로그램입니다.)

#! /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
클릭 여기에 원래의 크기, 그리고 여기 영업 이익의 버전과 비교.

보시다시피 시뮬레이션 결과는 정확히 동일합니다.

해결 방법

일러스트 레이터를 사용하지 않기 때문에 한 가지 해결 방법 만 생각할 수 있습니다.

스크린 샷을 8 비트 png로 변환

GraphicsMagick 및 / 또는 ImageMagick은이 작업에 편리한 콘솔 도구입니다. 다음 명령은 8 비트 png로 변환합니다.

convert original.png -depth 8 converted.png

와우, 깊이있는 설명 감사합니다. Adobe는 아직 내 버그 보고서에 응답하지 않았지만 다행히도 16 비트 색상 지원이 Illustrator에 추가 될 수 있기를 바랍니다. 또는 최소한 8 비트 색상으로 올바르게 반올림하십시오.
Bryan

1

이제는 펑키 한 문제입니다.

김프는 이미 스크린 샷의 색상 프로파일에 대한 의심을 확인하면서 실마리를 제공합니다. 일상적인 sRGB와 채널당 8 비트를 변환하면 Illustrator에서 CMYK로 가져 오기를 방해하는 일이 발생하지 않을 수 있습니다.


1

이 방법은 늦었지만 간단한 해결 방법 (Mac 사용자의 경우)은 미리보기에서 PNG를 연 다음 PNG로 내보내 기본 16 비트 옵션을 8 비트 옵션으로 전환하는 것입니다. 추가 소프트웨어가 필요하지 않으며 몇 초 밖에 걸리지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.