gpt4 book ai didi

ios - 当我尝试对最多 100 张图像执行屏幕外旋转时,CIIImage 泄漏

转载 作者:行者123 更新时间:2023-11-29 04:52:03 31 4
gpt4 key购买 nike

当我使用以下方法(在 ARC 下)时,内存分配迅速增长到超过 125 Mo。

我已经使用CGImage实现了它,但是速度相当慢。

imageArray 包含 125 个大小为 640x80 的 UIImage。

-(void)rotateAndTransform{
int j=0;
context = [CIContext contextWithOptions:nil];
for(UIImage* item in imageArray)
{
CGImageRef intermed =[item CGImage];
CIImage *begin = [CIImage imageWithCGImage:intermed];
CGAffineTransform transform = CGAffineTransformMakeRotation(-M_PI/2);
CIImage *outputImage = [ begin imageByApplyingTransform:transform];
CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]];
UIImage *newImg = [UIImage imageWithCGImage:cgimg];
CGImageRelease(cgimg);
[self.imagesFromExtract addObject:newImg];
j++;
}
}

最佳答案

问题可能是这样的

CIImage *outputImage = [ begin imageByApplyingTransform:transform];

分配一个镜像,该镜像在自动释放池耗尽之前不会被释放,当您的程序到达空闲循环时就会发生这种情况。在没有尝试您的代码的情况下,我可以建议您将内部循环包装在

@autoreleasepool {
...
}

阻止?

关于ios - 当我尝试对最多 100 张图像执行屏幕外旋转时,CIIImage 泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8643462/

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