当前位置:  开发笔记 > IOS > 正文

iPhone/iPad上的CGBitmapContextCreate

如何解决《iPhone/iPad上的CGBitmapContextCreate》经验,为你挑选了0个好方法。

我有一个方法需要逐个像素地解析一堆大的PNG图像(PNG每个600x600像素).它似乎在模拟器上运行良好,但在设备(iPad)上,我在某些内部存储器复制功能中获得了EXC_BAD_ACCESS.看起来大小是罪魁祸首,因为如果我在较小的图像上尝试它,一切似乎都有效.这是以下方法的记忆相关肉.

+ (CGRect) getAlphaBoundsForUImage: (UIImage*) image 
{    
    CGImageRef imageRef = [image CGImage];

NSUInteger width = CGImageGetWidth(imageRef);
NSUInteger height = CGImageGetHeight(imageRef);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

unsigned char *rawData = malloc(height * width * 4);
memset(rawData,0,height * width * 4);

NSUInteger bytesPerPixel = 4;
NSUInteger bytesPerRow = bytesPerPixel * width;
NSUInteger bitsPerComponent = 8;
CGContextRef context = CGBitmapContextCreate(rawData, width, height, bitsPerComponent, bytesPerRow, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);

CGColorSpaceRelease(colorSpace);

CGContextDrawImage(context, CGRectMake(0, 0, width, height), imageRef);
CGContextRelease(context);

/* non-memory related stuff */

free(rawData);

当我在一堆图像上运行它时,它运行12次然后缩小,而在模拟器上运行没有问题.你们有什么想法吗?

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有