CGImage à UIImage ne fonctionne pas

Je développe et iOS app pour iPad et j'utilise Grabkit afin d'get des images de Facebook, Twitter, Flicker et aussi le rouleau de camera. Pour get les images de la dernière, j'ai besoin de convertir un CGImage en UIImage, mais j'ai des problèmes avec ça. C'est comme si je n'avais pas d'image, parce que lorsque j'utiliserai UIImage plus tard, l'application plante avec ce journal:

*** Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer position contains NaN: [nan 653]' 

J'utilise le code suivant pour convertir l'image CG:

 UIImage* image = [UIImage imageWithCGImage:imgRef]; 

Donc, ce code ne plante pas, mais quand j'utilise l'image créée, c'est le cas. Qu'est-ce qui se passe? Le code est-il faux?

Vous devez utiliser alloc init comme UIImage* myImage = [[UIImage alloc] initWithCGImage:myCGImage];

ou vous pouvez essayer ceci:

 CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); NSUInteger width = CGImageGetWidth(image); NSUInteger height = CGImageGetHeight(image); NSUInteger bytesPerPixel = 4; NSUInteger bytesPerRow = bytesPerPixel * width; NSUInteger bitsPerComponent = 8; int size = height*width*bytesPerPixel; unsigned char *rawData = malloc(size); CGContextRef context = CGBitmapContextCreate(rawData,width,height,bitsPerComponent,bytesPerRow,colorSpace,kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big); CGColorSpaceRelease(colorSpace); CGContextDrawImage(context, CGRectMake(0,0,width,height),image); UIImage *newImage = [UIImage imageWithCGImage:CGBitmapContextCreateImage(context)]; CGContextRelease(context); free(rawData);