Swift GIF 编码器

Build Docs

一个轻量级的 LZW 编码器和解码器,完全用 Swift 编写,因此可以在任何平台上运行,包括 Linux。

示例

// Create a new GIF
var gif = GIF(width: 300, height: 300)

// Add some frames for the animation
for i in 0..<20 {
    let image = try CairoImage(pngFilePath: "frame\(i).png")
    gif.frames.append(.init(image: image, delayTime: 100))
}

// Encode the GIF to a byte buffer
let data = try gif.encoded()

技术细节

GIF 编码比解码在计算上更密集。当 GIF 用作视频编解码器并且必须实时进行序列化时,它可能会成为瓶颈。 因此,多核 CPU 用于加速动画 GIF 的编码。 所有动画帧都被收集到一个 Array 中,然后分配给系统中所有 CPU 核心。

系统依赖