一个轻量级的 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 核心。