objective-c - 创建调色板 CGImageRef

标签 objective-c core-graphics png-8

我正在尝试使用 CoreGraphics 创建调色板(索引)PNG。

我发现最好的是我可以使用:

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

然后:

CGImageRef palettedImage = CGImageCreateCopyWithColorSpace(maskedImage, colorSpace)

但是我不确定将什么作为颜色表。我想利用一些预先制作的(快速)量化算法 - 例如调用 CGImageDestinationCreateWithURL(url, kUTTypeGIF , 1, NULL); 时已内置到 ImageIO 中的算法

如何为 PNG 创建调色板?

最佳答案

如果您的颜色空间是 RGB,您将像这样设置 colorTable:

{R, G, B, R, G, B, R, G, B, ...}

关于objective-c - 创建调色板 CGImageRef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17478564/

相关文章:

iphone - 如何获取 CGPath 曲线或四边形曲线中的所有点

image-processing - 使用 ImageMagick 通过保留半透明像素将 32 位 png 转换为 8 位 png

cocoa - 使用 NSImage 创建并写入调色板 RGBA PNG

swift - CALayer 绕中心旋转

ios - 内部类存在于混合框架的自动生成的 header 中

iphone - cocoa touch ,NSManagedObject : Exception when setting a property

iphone - 在界面旋转时对 UIView 到底做了什么?

ios - Core Graphics - 将 CGGradient 与笔画和文本一起使用

Fireworks 中的 PNG8+Alpha(颜色图)与其他地方(RGBA)不同/更小。为什么?

objective-c - 对不是基于字符串的字符串的 nsarray 进行排序