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