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];
他に何もせずにこれらのフィルターを何度も繰り返すと、アプリはますます多くのメモリを消費します。
私は何を間違っていますか?不要になったメモリを解放するにはどうすればよいですか?