Save CGImageRef as PNG-8



我想知道如何将CGImageRef保存为基于调色板的PNG-8文件。

我对PNG-24有以下代码:

CFURLRef url = (CFURLRef)[[NSURL alloc] initFileURLWithPath:path];
CGImageDestinationRef destination = CGImageDestinationCreateWithURL(url, kUTTypePNG, 1, NULL);
CGImageDestinationAddImage(destination, image, properties);
CGImageDestinationFinalize(destination);

现在想把它转换成PNG-8。如果我确实需要使用libpng,你会如何重写它?

嗯,没有答案:)我相信解决方案可能是使用libpng,但我还没有尝试过。我将把这个标记为目前公认的答案,但如果有人能提供一个好的建议,我很乐意改变它!

谢谢。编辑:

我最终破解https://github.com/pornel/pngquant,让它接受CGImageRefs,并保存PNG-8文件。它并不漂亮。最后,我实际上切换到GIF (kUTTypeGIF)在我的测试中运行得快得多。

相关内容

  • 没有找到相关文章

最新更新