2012-05-17 6 views
4

현재 오픈 소스 libPNG 라이브러리를 사용하여 & 비트 맵 압축 해제를 읽습니다. 그것은 안드로이드, OS X 및 Win32에서 훌륭하게 작동하지만 어떤 이유로 iOS 장치에서 30X을 수행합니다. 모든 플랫폼에서 동일한 libPNG 소스 코드 트리 (수정되지 않음)가 사용됩니다.iOS에서의 끔찍한 libPNG 성능

내가 Cocos2D 포럼에서 발견 한 몇 가지 사실은 iOS에서 zlib 구현과 관련된 문제로 여겨지지만 stb_image와 LodePng를 사용하여 zlib와 libPNG보다 실제로 수행 된 라이브러리를 피하려고 노력했습니다!

iOS에서 libPNG를 "올바르게"구축하는 특별한 방법이 있습니까? 그렇지 않다면 libPNG가 수행하는 작업은 iOS에서 훨씬 느린 SO입니까? 왜 stb_image도 느리거나 느린가? 이 문제를 해결하거나 해결할 수있는 알려진 방법이 있습니까?

감사합니다, AF

+2

iOS 및 OS X에서 CoreGraphics를 사용하여 PNG 이미지를로드 할 수 있습니다. 기본 과정은'CGImageCreateWithPNGDataProvider'로 PNG를로드 한 다음 비트 맵 컨텍스트 ('CGBitmapContextCreate')를 만들고 비트 맵 컨텍스트에 PNG를 그립니다. 이렇게하면 LibPNG를 완전히 피할 수 있습니다. –

+1

iOS 기기에서 주로 느린 파일 시스템 대역폭을 측정 할 수 있습니까? 디스플레이 용 GPU에 큰 비트 맵을 가져 오는 데 iOS 장치 대역폭 제한이 있으며 OS 버전 및 장치 모델에 따라 다릅니다. – hotpaw2

+0

gpu와 관련이 없으며 .png를 한 메모리 버퍼에서 다른 메모리 버퍼로 압축을 풀면됩니다. 항상 먹는 특정 기능은 "png_read_image()"입니다. – Bungles

답변

1

당신은 ZLIB를 다시 시도 할 수 있으며,이 문제를 해결할 수 있습니다. 그렇지 않은 경우이 문제를 해결할 수있는 PNG를 지원하는 인기있는 오픈 소스 iOS 응용 프로그램을 찾으십시오. 그들의 포럼에 게시 할 수도 있습니다.