gpt4 book ai didi

iphone - 使用 Core Image 过滤器时增加 CFData 内存使用量

转载 作者:行者123 更新时间:2023-12-03 19:24:11 25 4
gpt4 key购买 nike

我遇到分配内存过多的问题。我的应用程序分配内存达到 100MB!是的...我正在使用ARC。大部分内存分配是由 CFData 分配的(据我所知,它是 CoreImage 过滤器)。对图像应用滤镜后,CFData 分配的内存增加了约 1.3mb 并且不会释放:

Instruments showing the memory usage

代码如下所示:

+(UIImage*)BWFilter:(UIImage *)imgFX
{
CIImage *sourceImage = [[CIImage alloc] initWithImage:imgFX];

CIImage *blackAndWhite = [CIFilter filterWithName:@"CIColorControls" keysAndValues:kCIInputImageKey, sourceImage, @"inputBrightness", [NSNumber numberWithFloat:0.0], @"inputContrast", [NSNumber numberWithFloat:1.1], @"inputSaturation", [NSNumber numberWithFloat:0.0], nil].outputImage;
CIImage *output = [CIFilter filterWithName:@"CIExposureAdjust" keysAndValues:kCIInputImageKey, blackAndWhite, @"inputEV", [NSNumber numberWithFloat:0.7], nil].outputImage;

CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef cgiimage = [context createCGImage:output fromRect:output.extent];
imgFX = [UIImage imageWithCGImage:cgiimage];

if (cgiimage) {
CGImageRelease(cgiimage);
}

return imgFX;
}

内存警告后内存使用量并没有下降,因此应该不是缓存问题。

最佳答案

我在示例项目(使用 ARC)上运行了您的代码,它没有给出任何泄漏或额外的分配。 CFData本质上与CIFilter子类相关,但与CIImage相关。问题出在其他地方。

关于iphone - 使用 Core Image 过滤器时增加 CFData 内存使用量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13646570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com