gpt4 book ai didi

iphone - 在4.0之前的iOS中,是否存在线程安全的方法来创建PNG图像?

转载 作者:行者123 更新时间:2023-12-01 17:02:56 24 4
gpt4 key购买 nike

我很确定

UIImagePNGRepresentation([UIImage imageWithCGImage:imageRef])

是在后台线程中完成时外观随机的内存泄漏的原因(它会导致泄漏回溯到CGContextDrawPDFPage!)。

现在,互联网上的所有其他地方都说我应该使用CGImageDestination,它在iOS4之前不可用。除了导入重量级PNG库之外,我还有什么方法可以将位图编码为PNG?

编辑:现在这很有趣。对于创建PNG的整个后台线程,我每生成10个PNG就会耗尽自动释放池。在保存周围添加自动释放池后,内存警告和崩溃消失。这些调用是否占用内存?
NSAutoreleasePool* savePool = [[NSAutoreleasePool alloc] init];

NSData* imageData = UIImagePNGRepresentation([UIImage imageWithCGImage:imageRef]);
[imageData writeToFile:savePath atomically:NO];

[savePool drain];

最佳答案

在实践中,

UIImageXXXRepresentation([UIImage imageWithCGImage:imageRef])

似乎足够线程安全。只要注意内存使用情况。

关于iphone - 在4.0之前的iOS中,是否存在线程安全的方法来创建PNG图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3625993/

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