我創造模糊圖像我的應用程序的屏幕之一,爲此我使用下面的代碼CGImageRef消耗大量的內存
UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CIContext *context = [CIContext contextWithOptions:nil];
CIImage *inputImage = [CIImage imageWithCGImage:image.CGImage];
CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"];
[filter setValue:inputImage forKey:kCIInputImageKey];
[filter setValue:[NSNumber numberWithFloat:5] forKey:@"inputRadius"];
CIImage *result = [filter valueForKey:kCIOutputImageKey];
CGImageRef cgImage = [context createCGImage:result fromRect:[inputImage extent]];
blurrImage = [UIImage imageWithCGImage:cgImage];
self.blurrImageView.image = blurrImage;
CGImageRelease(cgImage);
表格上面的代碼我是獲取正確的模糊圖像,但問題在於此線路上的CGImageRef cgImage = [context createCGImage:result fromRect:[inputImage extent]];
。
高達該行存儲器的使用表示是正常的,但此行存儲器使用量增加後異常高,
聽到的是執行前顯示內存使用的screenchot。內存使用情況是繼續沿着這個方法的執行增加,這是
之前,該行執行後CGImageRef cgImage = [context createCGImage:result fromRect:[inputImage extent]];
是,這是共同的行爲..?我搜索的答案,但我沒有得到,所以任何一個面臨着同樣的問題,請幫我在這
一件事我是「沒有使用ARC」
你的形象有多大?內存分析器在設備或模擬器上運行? – Andrea
沒有這麼多,但在執行此方法後內存使用量有所增加 –
第二個UIGraphicsGetImageFromCurrentImageContext()是一個私有API,如果您想要提交到AppStore – Andrea