【发布时间】:2020-02-26 02:53:07
【问题描述】:
我正在将 CIFilter 应用于 RAW 图像,但是当我尝试在 UIImageView 中显示它时遇到一些内存问题。
我使用以下代码应用 CIFilter:
CIFilter *rawshadow = [CIFilter filterWithImageURL:initialImageUrl options:@{kCIInputBoostShadowAmountKey: [NSNumber numberWithFloat:self.shadowsSlider.value],kCIInputScaleFactorKey: [NSNumber numberWithFloat:1]}];
currentImage = rawshadow.outputImage;
然后我使用以下内容更新 UIImageView:
-(void) UpdatePreview{
CIContext *context = [CIContext contextWithOptions:@{kCIContextCacheIntermediates: [NSNumber numberWithBool:NO], kCIContextPriorityRequestLow:[NSNumber numberWithBool:YES]}];
CGImageRef cgImage = [context createCGImage:currentImage fromRect:[currentImage extent]];
UIImage* img = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);
[self.mainImageView setImage:img];
}
运行 UpdatePreview 后,RAM 飙升至 2GB 并崩溃。
我使用的原始图像是 6000x4000,大约 24MB。
是不是太大了还是我遗漏了什么?
提前感谢您的帮助。
【问题讨论】:
标签: ios objective-c core-image