【发布时间】:2018-11-30 05:45:57
【问题描述】:
我正在做的是从位图数据创建 CGImage 并将其转换为 UIImage。
下面有代码
- (UIImage *)imageWithBitmapBytes:(Byte *)imageBytes width:(size_t)width height:(size_t)height pixelCount:(NSUInteger)pixelCount {
NSUInteger imageBufferSize = width * height * pixelCount;
CGDataProviderRef dataProviderRef = CGDataProviderCreateWithData(nil, imageBytes, imageBufferSize, nil);
NSUInteger bitsPerComponent = 8;
NSUInteger bitsPerPixel = bitsPerComponent * pixelCount;
NSUInteger bytesPerRow = width * pixelCount;
CGImageRef cgImage = CGImageRetain(CGImageCreate(width, height, bitsPerComponent, bitsPerPixel, bytesPerRow, CGColorSpaceCreateDeviceGray(), kCGImageAlphaLast, dataProviderRef, nil, false, kCGRenderingIntentDefault));
CGDataProviderRelease(dataProviderRef);
UIImage *image =[UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);
return image;
}
我在 ARC 开启和关闭两种情况下测试了这段代码。
我总是在这一行得到 Bad access memory 错误
UIImage *image =[UIImage imageWithCGImage:cgImage];
【问题讨论】:
标签: objective-c xcode uikit