我需要转换 CIImage 达到可以写入磁盘的格式。

目前,我正在使用以下代码将其转换为JPG格式。

 NSBitmapImageRep* rep = [[[NSBitmapImageRep alloc] initWithCIImage:result] autorelease];

 NSData *JPEGData = [rep representationUsingType:NSJPEGFileType properties:nil];
[JPEGData writeToFile:targetPath atomically:YES]; 

但是,真正的内存使用量高达100 MB以上。我的应用程序要求我处理大量图像,因此我需要优化内存使用量。

任何人都可以建议吗???

有帮助吗?

解决方案

如果是累积内存是一个问题,而不仅仅是一张图像,您可以尝试将最后两行包裹在您自己的自动发行池中:

@autoreleasepool {
    NSData *JPEGData = [rep representationUsingType:NSJPEGFileType properties:nil];
    [JPEGData writeToFile:targetPath atomically:YES];
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top