내 응용 프로그램에서는 initWithContentsOfURL을 사용하여 다양한 유형의 이미지 (JPEG, TIFF, PNG, GIF 등)를 이미지로로드 한 다음 OpenGL 텍스처로로드합니다.TIFF를로드 할 때 NSImage initWithContentsOfURL 알파 채널이 누락되었습니다.
알파 채널이있는 이미지를로드하는 유일한 유형은 png입니다. (위의 목록에서 PNG 및 TIFF 은에 알파 데이터가 포함될 수 있습니다.) .tiff 이미지를로드하려고하면 알파 채널없이로드됩니다. 이미지의 이미지 rep는 alpha = NO로보고되고 bitsPerPixel은 24.
PS에서 알파로 이미지를 편집하고 PNG 및 TFF로 저장하며 PNG로 내 프로그램에서 알파를로드 할 수 있지만 TIFF는로드 할 수 없습니다. 또한 PS에서 TIFF 이미지를 열 수 있습니다. 알파 데이터가 있는지 확인하십시오.
왜 TIFF 이미지가 알파 채널로로드되지 않는가요? 그리고 알파 채널을 삭제하지 않고 내 TIFF를로드 할 수있는 또 다른 appkit 호출이 있습니까? 바닥에?
편집 :
이 질문을 게시 한 이후 일부 4 채널 TIFF는 알파 데이터로로드되고 일부는로드되지 않는 것으로 나타났습니다. 워크 플로우가 다른 결과를 가져 오는 지 아직 파악하지 못했습니다.
이 파일은 포토샵에서 알파 채널을로드하지만 -[[NSImage alloc] initWithContentsOfURL]
사용하지 않는 당신이 코코아를로드하는 경우 : 또한 알파 채널이
Image "Red Julia Seahorse crop"
유사한 이미지가 위를 사용하여 알파 부하를합니까 난 그냥 시도
PS의 "투명도 저장"설정이 실제로 차이를 만드는 것처럼 보입니다. 정말 이상한 점은 PS에로드하면 이미지가 알파로 표시된다는 것입니다. 게다가 프로그래밍 방식으로 생성 한 TIFF는 코코아에서 알파를로드하지 않았다고 맹세합니다. 나는 그것을 지금 반복 할 수는 없다. –
내가 알 수 있듯이 투명도는 두 경우 모두 TIFF 파일에 저장되지만 "투명도 저장"옵션은 소모성 응용 프로그램에 투명성을 적용할지 여부를 알려주는 파일의 정렬 플래그를 설정합니다. 나는 아마 그 설명을 도살하고 있지만, 나는 당신이 내 뜻을 알 것 같아요. – picciano