2013-06-17 2 views
1

CGImageRef를 팔레트 기반 PNG-8 파일로 저장하는 방법이 궁금합니다.CGImageRef를 PNG-8로 저장

CFURLRef url = (CFURLRef)[[NSURL alloc] initFileURLWithPath:path]; 

CGImageDestinationRef destination = CGImageDestinationCreateWithURL(url, kUTTypePNG, 1, NULL); 
CGImageDestinationAddImage(destination, image, properties); 
CGImageDestinationFinalize(destination); 

지금 PNG-8이를 변환하는 상대 :

나는 PNG-24에 대한 다음과 같은 코드가 있습니다. libpng를 사용해야 할 경우, 어떻게 다시 작성 하시겠습니까?

답변

0

흠, 답변 없음 :) 해결책이 libpng를 사용하는 것일 수 있다고 생각하지만 아직 시도하지 않았습니다. 나는 이것을 지금 받아 들여지는 대답으로 표시 하겠지만 누군가가 좋은 팁을 줄 수 있다면 기꺼이 그것을 바꿀 것입니다!

감사합니다.

편집 :

나는 그것이 PNG-8 파일을 CGImageRefs을 적용하고 저장 얻을 떨어져 https://github.com/pornel/pngquant 해킹 끝났다. 꽤 아니 었어. 결국, 나는 실제로 내 테스트에서 더 빨리 달린 GIF (kUTTypeGIF)로 전환했다.

+1

현재 pngquant에서 파생 된 [libimagequant] (http://pngquant.org/lib)가 있으며 속도/품질 절충을 조정할 수있는'liq_set_speed()'옵션이 있습니다 (속도를 높이더라도 재고 GIF 작가가 달성하는 것보다 나은 품질을 얻을 수 있습니다.) – Kornel

관련 문제