imageWithCGImage сделать приложение разбилось
Мой проект - автоматический подсчет ссылок, но когда я использую CGBitmapContextCreateImage и метод UIIMage imageWithCGImage, что-то происходит. Я написал некоторый тестовый код, когда он работал, память увеличивалась до тех пор, пока приложение не рухнуло.
Устройство:
[16G, iPad2, сетчатка]
Код:
(UIImage*) createImageByImage:(UIImage*)img
{
CGSize imgSize = img.size;
imgSize.width *= [UIScreen mainScreen].scale;
imgSize.height *= [UIScreen mainScreen].scale;
CGColorSpaceRef space = CGColorSpaceCreateDeviceRGB();
CGContextRef ctx = CGBitmapContextCreate(nil, imgSize.width, imgSize.height, 8, imgSize.width * (CGColorSpaceGetNumberOfComponents(space) + 1), space, kCGImageAlphaPremultipliedLast);
CGColorSpaceRelease(space);
CGRect rect;
rect.origin = CGPointMake(0, 0);
rect.size = imgSize;
// here bypass some transformation to the CGContext
CGContextDrawImage(ctx, rect, img.CGImage);
CGImageRef cgImage = CGBitmapContextCreateImage(ctx);
CGContextRelease(ctx);
UIImage* image = [UIImage imageWithCGImage:cgImage scale:[UIScreen mainScreen].scale orientation:UIImageOrientationDown];
CGImageRelease(cgImage);
return image;
}
звонящий:
UIImage* baseImg = [UIImage imageNamed:@"corkboard.jpg"]; // any big image,e.g. 1024*768
for (int i = 0; i < 100; i++) {
UIImage* tempImg = [self createImageByImage:baseImg];
tempImg = nil;
}
baseImg = nil;
Есть кто-то, кто может объяснить? Жду вашей помощи!!!
Другое дело: в коде, если я только заменю
[UIImage imageWithCGImage:cgImage ....];
с
[UIImage imageWithCGImage:img.CGImage ....];
ошибка исчезла! Но затем функция изменилась, не соответствует первоначальному требованию!