我需要将像素编辑器应用程序的内容保存到.png文件中,但我无法找到实现此目的的最佳方法。像素数据存储在32位RGBA缓冲器中。任何人都可以建议我可以使用任何好工具来完成这个任务吗
编辑: 不幸的是,cocotron不支持CGImage和representationUsingType:我需要能够将我的应用程序定位到PC版本,有人能建议第三种方法来完成这项任务吗?
答案 0 :(得分:5)
NSBitmapImageRep
应该能满足您的需求。将数据加载到NSBitmapImageRep
然后使用representationUsingType:properties:
将其作为PNG发布。一个简单的例子:
NSBitmapImageRep *imageRep =
[[NSBitmapImageRep alloc] initWithBitmapDataPlanes:imageBuffer
pixelsWide:imageWidth
pixelsHigh:imageHeight
bitsPerSample:8
samplesPerPixel:4
hasAlpha:YES
isPlanar:NO
colorSpaceName:NSDeviceRGBColorSpace
bitmapFormat:NSAlphaFirstBitmapFormat
bytesPerRow:imageWidth * 4
bitsPerPixel:32];
NSData *pngData = [imageRep representationUsingType:NSPNGFileType
properties:propertyDictionary];
如果您不能使用这些Cocoa方法,请查看libpng
。
答案 1 :(得分:2)
从像素数据创建CGImage并将其提供给CGImageDestination。
发布之前不要忘记finalize the destination。这一步是强制性的,很容易忘记。