문제

일부 OSX 코드를 iOS에 이르고 CIImage의 바이트에 액세스해야합니다.OSX 버전은 nsbitmapimagerep 에서이 작업을 수행하지만 iOS에서는 물마루를 점프해야합니다.

여기에 실행하려는 코드가 를 실행하려고합니다.

CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef cgImage = [context createCGImage:image fromRect:image.extent];
CGDataProviderRef provider = CGImageGetDataProvider(cgImage);
CFDataRef data = CGDataProviderCopyData(provider);

CGRect extent = [image extent];
//png.Load((UInt8*)CFDataGetBytePtr(data), extent.size.width, extent.size.height, true);

CFRelease(data);
//CGDataProviderRelease(provider);
.

예상대로 작동하지만 잠시 후 앱이 충돌합니다.나는 그 이유를 전혀 모른다.경계 메모리에서 메모리 누출 / 아웃에서 추측을하고 있습니다.내가 모든 것을 올바르게 해제하고있는 한 ... 내가 그 선을 꺼내는 경우, 아무 것도 충돌하지 않습니다.앱에서 CGDataProviderrelease가 거의 즉시 충돌하는 경우가 있습니다.

도움이 되었습니까?

해결책

CFrelease (CGImage)가 필요하다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top