CGImage到UIImage不起作用

我正在开发和iPad的iPad应用程序,我使用Grabkit为了从Facebook,Twitter,闪烁和相机胶卷的图像。 为了从最后一个获得图像,我需要将CGImage转换为UIImage,但是我遇到了麻烦。 就像我没有得到任何图像,因为当我以后使用UIImage,应用程序崩溃与此日志:

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

我正在使用下面的代码来转换CGImage:

 UIImage* image = [UIImage imageWithCGImage:imgRef]; 

所以这个代码不会崩溃,但是当我使用创build的图像,它确实。 发生什么事? 代码错了吗?

你应该使用像UIImage* myImage = [[UIImage alloc] initWithCGImage:myCGImage]; alloc init UIImage* myImage = [[UIImage alloc] initWithCGImage:myCGImage];

或者你可以试试这个:

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