Mar*_*cos 2 crash objective-c uiimage cgimage ios
我开发和iOS应用程序为iPad和我为了获得来自Facebook,Twitter的,闪烁的图像,并在相机胶卷使用Grabkit.要从最后一个获取图像,我需要将CGImage转换为UIImage,但我遇到了麻烦.就像我没有得到任何图像,因为当我稍后使用UIImage时,应用程序崩溃了这个日志:
*** Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer position contains NaN: [nan 653]'
Run Code Online (Sandbox Code Playgroud)
我正在使用以下代码转换CGImage:
UIImage* image = [UIImage imageWithCGImage:imgRef];
Run Code Online (Sandbox Code Playgroud)
所以这段代码不会崩溃,但是当我使用创建的图像时,它确实会崩溃.怎么了?代码错了吗?
Joh*_*ijk 10
你应该使用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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9508 次 |
| 最近记录: |