2

CoreGraphics を使用してパレット (インデックス付き) PNG を作成しようとしています。

私が見つけた最高のものは、私が使用できることです:

CGColorSpaceRef colorSpace = CGColorSpaceCreateIndexed(CGImageGetColorSpace(maskedImage), 255, <#const unsigned char *colorTable#>);

それで:

CGImageRef palettedImage = CGImageCreateCopyWithColorSpace(maskedImage, colorSpace)

ただし、colorTable として何を配置すればよいかわかりません。呼び出し時に ImageIO に既に組み込まれているアルゴリズムなど、事前に作成された (高速な) 量子化アルゴリズムを活用したいと思います。CGImageDestinationCreateWithURL(url, kUTTypeGIF , 1, NULL);

PNG のパレットを作成するにはどうすればよいですか?

4

2 に答える 2

1

たとえば、色空間が RGB の場合、次のように colorTable を設定します。

{R, G, B, R, G, B, R, G, B, ...}
于 2013-07-05T00:55:49.737 に答える