如何通过从视频帧或 UIImages 数组中抖动来创建 GIF看起来更自然?

问题描述

这是链接 (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 示例代码项目 hereOptimising Image-Processing Performance 讨论将交错图像转换为平面格式。如果您有已知的调色板,Applying Color Transforms to Images with a Multidimensional Lookup 表可能是将图像量化为 256 色的解决方案。