【发布时间】:2014-01-14 13:05:09
【问题描述】:
GPUImage 是否存在内存问题?下面有两个不同的 Vignette 滤镜效果代码。第一个(Apple 的 CI 过滤器)使用 19 MB 内存,而 GPUImage 使用超过 75 MB。我的代码有什么问题?
带有 CIFilter 的晕影过滤器
CIImage *ciImage = [[CIImage alloc] initWithImage:image];
CIFilter *filter = [CIFilter filterWithName:@"CIVignetteEffect" keysAndValues:kCIInputImageKey, ciImage, nil];
CIContext *context = [CIContext contextWithOptions:nil];
CIImage *outputImage = [filter outputImage];
CGImageRef cgImage = [context createCGImage:outputImage fromRect:[outputImage extent]];
UIImage *result = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);
return result;
这是 GPUImage 版本:
GPUImageFilter * f = [[GPUImageVignetteFilter alloc] init];
UIImage *result = [f imageByFilteringImage:image];
return result;
我在我的项目中使用“ARC”。你有什么主意吗?我应该怎么做才能“释放” GPUImage 过滤器内存?
【问题讨论】:
标签: objective-c gpuimage cifilter