gpt4 book ai didi

使用 UIImagePNGRepresentation 时的内存问题

转载 作者:行者123 更新时间:2023-12-01 12:57:14 40 4
gpt4 key购买 nike

我发现这个模块很麻烦。我从 Photolibrary 导入了 100 多张图片,将它们保存在不同名称的文档目录中。不出所料,我在不寻常的地方遇到了内存问题。似乎 UIImagePNGRepresenation 正在缓存文件。因此,当我对 300 多张图像运行以下过程时,我看到“总字节数”在 3.00 GB 范围内,并且由于内存(在分配工具中测试)而崩溃。我已经粘贴了下面的代码。此代码是否有任何替代方案

-(void)something
{
NSData *data=nil;
for (int i=0; i<numberOfImages; i++) {

@autoreleasepool {

UIImage *image=[UIImage imageNamed:[NSString stringWithFormat:@"image%d.png",i]];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [[paths objectAtIndex:0] stringByAppendingString:@"directoryname"];

NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"image%d.png",i]];

//convert image into .png format
data=UIImagePNGRepresentation(image);
[data writeToURL:[NSURL URLWithString:fullPath] atomically:NO];
}
}
data=nil;
}

最佳答案

我通过发送 4 channel 图像(RGBA 或 RGBX)而不是 3 channel 图像 (RGB) 来解决这个问题。

您可以检查是否有机会更改图像的参数。

关于使用 UIImagePNGRepresentation 时的内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9062506/

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