CGBitmapContextСоздать на iPhone / iPad

У меня есть метод, который должен анализировать кучу больших изображений 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 раз, а затем вылетает, в то время как на симуляторе он работает без проблем. Ребята, у вас есть идеи?

Ответы на вопрос(7)

Ваш ответ на вопрос