问题描述
这是链接 (https://imgplay.zendesk.com/hc/en-us/articles/360029411991-What-is-GIF-Dithering-Option-),上面写着 When you save the file as GIF with dithering,it can make your GIF more natural.
如何实现 Dithering
以使用 Objective-C 或 Swift 从 UIImages 或视频帧创建更自然的 GIF?
解决方法
假设您的源图像是每通道 RGB 8 位,您可以使用 vImage。 vImage 没有 vImageConvert_RGB88toIndexed8
,但您可以将交错图像拆分为 RGB 的三个 8 位平面缓冲区。我不知道这到底能起到多大作用,但您可以使用 vImageConvert_Planar8toIndexed2
将三个通道中的两个转换为 Indexed2
,使用 vImageConvert_Planar8toIndexed4
将另一个通道转换为 Indexed4
。这将为您提供所需的 8 位查找表。
Apple 有大量 Accelerate 示例代码项目 here。 Optimising Image-Processing Performance 讨论将交错图像转换为平面格式。如果您有已知的调色板,Applying Color Transforms to Images with a Multidimensional Lookup 表可能是将图像量化为 256 色的解决方案。