1

我想知道如何将 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,你将如何重写它?

4

1 回答 1

0

嗯,没有答案:) 我相信解决方案可能是使用 libpng 但我还没有尝试过。我暂时将其标记为已接受的答案,但如果有人能提供一个好的提示,我很乐意将其更改!

谢谢。

编辑:

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

于 2013-06-25T06:38:14.157 回答