【发布时间】:2013-07-31 13:35:26
【问题描述】:
我注意到我使用 GPUImage 的次数越多,我的应用程序占用的内存就越多(使用 Instruments 来监控内存使用情况)。
例如,我以不同的方法使用每个过滤器:
(UIImage*)ToonFilter:(UIImage*)theImage
{
GPUImageSmoothToonFilter *smoothToonFilter = [[GPUImageSmoothToonFilter alloc] init];
[smoothToonFilter setTexelHeight:0.0025];
[smoothToonFilter setTexelWidth:0.0025];
return [smoothToonFilter imageByFilteringImage:theImage];
}
(UIImage*)SketchFilter:(UIImage*)theImage
{
GPUImageSketchFilter *sketchFilter = [[GPUImageSketchFilter alloc] init];
[sketchFilter setTexelHeight:0.003];
[sketchFilter setTexelWidth:0.003];
return [sketchFilter imageByFilteringImage:theImage];
}
(UIImage*)PixellateFilter:(UIImage*)theImage
{
GPUImagePixellateFilter *pixellateFilter = [[GPUImagePixellateFilter alloc] init];
[pixellateFilter setFractionalWidthOfAPixel:0.01;
return [pixellateFilter imageByFilteringImage:theImage];
}
这就是我使用这些过滤器的方式(testImage 是 UIImage):
testImage = [self SketchFilter:testImage];
testImage = [self PixellateFilter:testImage];
如果我只是一遍又一遍地循环通过这些过滤器,而不做任何其他事情,应用程序会占用越来越多的内存。
我做错了什么?不再需要的内存如何释放?
【问题讨论】:
-
您找到解决方法了吗?我遇到了同样的问题。
标签: objective-c memory gpuimage