我目前有一个包含有效 PNG 数据的 NSData:
NSData* imageData = [bitmapRep representationUsingType:NSPNGFileType properties:nil];
我已将此数据写入一个文件:
[imageData writeToFile:@"test.png" atomically:YES];
使用 OptiPNG 或 PNGCrush 对其进行压缩会产生有希望的结果(25%+ 压缩)。
我想在内存中执行此任务,向 NSData 添加一个类别以启用类似:
[imageData optimizePNGData]
然而,文件系统调用深深地嵌入到 OptiPNG 和 PNGCrush 中,使得它们都不适合构建为库(例如 optipng.a)。
有没有人知道如何在不依赖 exec 调用的情况下完成类似的事情,就像大多数 GUI 包装器所做的那样?