Skip to content

Latest commit

 

History

History
31 lines (21 loc) · 1.22 KB

README.md

File metadata and controls

31 lines (21 loc) · 1.22 KB

GIF Coder for Swift

Build Docs

A lightweight LZW encoder and decoder for animated GIFs written in pure Swift, thus running on any platform, including Linux.

Example

// 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()

Technical Details

GIF encoding is more computationally intensive than decoding. It can become a bottleneck when GIF is used as a video codec and serialization must happen in real-time. Therefore, multicore CPU is used to accelerate the encoding of animated GIFs. All the animation frames are gathered into one Array, which is then divided among all CPU cores in the system.

System Dependencies