是否有其他人遇到過這個問題? ObjectAlloc由於CGBitmapContextCreateImage而上升。蘋果的軟件沒有完全釋放objectalloc嗎?iPhone - 多個CGBitmapContextCreateImage調用 - ObjectAlloc攀登
我用NSTimer每秒調整圖像大小12次。在調整圖像大小的過程中,我還通過添加了插值質量來添加一個像高斯模糊效果一樣的photoshop。
使用儀器後,它不顯示任何內存泄漏,但我的objectalloc只是繼續攀升。它直接指向CGBitmapContextCreateImage。
CGBitmapContextCreateImage> CREATE_ bitmap_ data_provide>的malloc
任何人都知道一個解決方案嗎?或甚至可能的想法?
該呼叫的NSTimer
NSString * fileLocation = [[NSBundle mainBundle] pathForResource:imgMain ofType:@"jpg"];
NSData * imageData = [NSData dataWithContentsOfFile:fileLocation];
UIImage * blurMe = [UIImage imageWithData:imageData];
CGRect rect = CGRectMake(0, 0, round(blurMe.size.width /dblBlurLevel), round(blurMe.size.width /dblBlurLevel));
UIImage * imageShrink = [self resizedImage: blurMe : rect : 3.0];
CGRect rect2 = CGRectMake(0, 0, blurMe.size.width , blurMe.size.width);
UIImage * imageReize = [self resizedImage: imageShrink : rect2 : 3.0];
imgView.image = imageReize;
大小功能
-(UIImage *) resizedImage:(UIImage *)inImage : (CGRect)thumbRect : (double)interpolationQuality
{
CGImageRef imageRef = [inImage CGImage];
CGImageAlphaInfo alphaInfo = CGImageGetAlphaInfo(imageRef);
if (alphaInfo == kCGImageAlphaNone)
alphaInfo = kCGImageAlphaNoneSkipLast;
// Build a bitmap context that's the size of the thumbRect
CGContextRef bitmap = CGBitmapContextCreate(
NULL,
thumbRect.size.width,
thumbRect.size.height,
CGImageGetBitsPerComponent(imageRef),
4 * thumbRect.size.width,
CGImageGetColorSpace(imageRef),
alphaInfo
);
// Draw into the context, this scales the image
CGContextSetInterpolationQuality(bitmap, interpolationQuality);
CGContextDrawImage(bitmap, thumbRect, imageRef);
// Get an image from the context and a UIImage
CGImageRef ref = CGBitmapContextCreateImage(bitmap);
UIImage* result = [UIImage imageWithCGImage:ref];
CGContextRelease(bitmap); // ok if NULL
CGImageRelease(ref);
return [result autorelease];
}
您確定CGContextSetInterpolationQuality會產生高斯模糊嗎? – mahboudz 2009-09-17 03:03:29
你能告訴你如何調用這個方法以及你如何處理返回的圖像? – coneybeare 2009-09-17 03:26:54
是的,我使用這個功能的方式非常適合像高斯模糊一樣的photoshop。我將一個普通的UIImage傳遞到這個腳本中,並將圖像的大小調整爲非常小的尺寸,併爲其添加一些InterpolationQuality。這樣做會使新的非常小的圖像模糊。然後,我再次調用resize腳本,並將其傳遞到剛剛創建的縮小且模糊的圖像中。當你放大小的模糊圖像時,它回來了一個完美的高斯模糊。我已經搜索了各地找到一個簡單的方法來添加一個高斯模糊,但我還沒有找到一個功能添加一個這樣的好。 – bbullis21 2009-09-17 03:27:50