Question

Je transfère du code OSX sur iOS et je dois accéder aux octets d'un CIImage.La version OSX le fait avec un nsbitmapimagerepe, mais sur iOS, j'ai besoin de sauter des cerceaux.

Voici le code que j'essaie de courir

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);

Cela fonctionne comme prévu, mais après un moment, l'application se bloque.Je ne sais pas pourquoi.Je suppose une supposition à la mémoire de la mémoire / sortie de la mémoire des limites.Pour autant que je puisse dire que tout est libéré correctement ... Si je commentaire ces lignes, rien ne se bloque.Si je commente CGDATAPROVIDERRelease Back dans l'application se bloque presque immédiatement.

Était-ce utile?

La solution

Je pense que vous devez avoir besoin de cfrelease (cgimage) - vous avez utilisé "Créer" pour le créer non?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top