CGContextDrawImage 호출에서 EXEC_BAD_ACCESS 오류가 발생하여 다시 추적하려고합니다. PNG 이미지가 있고 UIImagePNGRepresentation o NSData 인스턴스를 제공합니다.iphone sdk에서 NSData를 CGDataProviderRef로 변환하는 방법은 무엇입니까?
CGImageRef 인스턴스로 변환해야하므로 CGImageCreateWithPNGDataProvider 메서드를이 CGImageRef와 함께 실행할 수 있습니다.
나는 두 가지 방법을 시도했다 : 1) 그것을 던지기.
CGImageRef ref = (CGDataProvider) nsdata;
2) CGDataProviderCreateWithCFData (nsdata)를 실행하려면;
첫 번째 경우는 빈 이미지를 반환하지만 명령은 실패하지 않습니다. 두 번째 경우를 시도한 이유는 비록 NSData가 있고 CFData가 아니더라도 읽음을 모두 받아들이 기 때문입니다. 이유가 무엇이든, 이로 인해 실패했습니다.
내 PNG NSData를 사용하여 손상되지 않은 CGImage를 만드는 방법이 있습니까? 도와주세요.
THanks
'image.CGImage'가'(CGImageRef) [(ID) CGImageCreateWithPNGDataProvider ((CGDataProviderRef) [(ID) CGDataProviderCreateWithNSData ((CFDataRef) UIImagePNGRepresentation (이미지)) 오토 릴리즈보다는 확실히 낫다 ], 0,0,0) autorelease]' –
UIKit은 쓰레드에 안전하지 않으므로 백그라운드 스레드에'UIImage' 인스턴스를 생성하면 문제가 발생할 수 있습니다. 어떤 경우에는'CGImageRef'를 직접 만드는 것이 낫습니다. – cheeesus
@cheeesus, Apple의 문서 (https://developer.apple.com/reference/uikit/uiimage)에 따르면 백그라운드 스레드에서 UIImage 인스턴스를 만드는 것이 안전합니다. * "이미지 개체의 불변 성은 또한 "* – Arda