PNG로 내보낼 때 Photoshop에서 완전 투명 픽셀을 처리하는 방법에 문제가 있습니다. 즉, 완전 투명 픽셀의 빨강, 녹색 및 파랑 채널은 Photoshop에서 정의한 색상 대신 0으로 저장됩니다 .
예를 들어 : 레이어 마스크가있는 PSD 파일이 있습니다. 이미지의 일부 색상 부분은 레이어 마스크로 완전히 투명하게 만들어 지지만 원본 색상 채널을 0 대신 PNG 파일에 쓰려고합니다.
(예, PNG 형식 자체 에는 완전히 투명한 픽셀의 경우에도 RGB 데이터 가 포함됩니다. 이것은 PNG가 아닌 Photoshop의 문제입니다.)
픽셀이 완전히 투명 할 때 색상 데이터가 중요한 이유 가 궁금하다면 다음과 같은 몇 가지 사용 사례가 있습니다.
- PNG가 저장되는 것보다 높은 해상도로 샘플링되고 있으며 샘플링 된 값이 인접 픽셀 사이에 보간됩니다. 보간에 투명도를 적용하지 않으면 이미지 주위에 희미한 검정색 "후광"이 생길 수 있습니다. (필자의 경우,이 업 샘플링은 GPU에서 수행되며 성능상의 이유로 투명성에 의해 무게가 나가지 않습니다.)
- PNG 파일의 빨강, 녹색, 파랑 및 알파 채널은 색상 정보 저장 이외의 용도로 사용됩니다. (제 경우에는 4 개 채널을 모두 사용하여 실시간 조명 계산에 필요한 데이터를 저장합니다.)
당신의 도움을 주셔서 감사합니다!
편집하다
시각 보조 도구를 사용하면서 발생하는 문제를 설명하려고합니다. 투명한 것을 보여주는 것은 어렵지만, 이것이 내 문제를 더 분명하게 만듭니다.
하나의 레이어와 레이어 마스크가있는 PSD 파일이 있습니다. 색상 레이어는 다음과 같습니다.
레이어 마스크는 다음과 같습니다.
이 PSD 파일을 PNG로 내 보내면 다음과 같은 결과가 나타납니다.
(흰색 영역은 실제로 투명합니다. 흰색 배경에 대해서만 흰색으로 보입니다.)
당신은 궁금 할 것입니다 : 무엇이 문제입니까? 맞습니다! 글쎄, 문제는 투명 픽셀에 저장된 색상 정보에 있습니다. RGB를 그대로 유지하면서 PNG에서 불투명도 데이터를 제거하는 도구를 사용하면 Photoshop이 투명 픽셀에 저장하는 색상 정보를 볼 수 있습니다.
보시다시피 Photoshop은 투명 픽셀의 색상 정보를 검은 색으로 대체했습니다. PNG에서 불투명도 데이터를 제거한 상태에서 원본 색상 레이어와 똑같이 보이기를 원합니다.