A lightweight LZW encoder and decoder for animated GIFs written in pure Swift, thus running on any platform, including 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()
- Swift 5.7+
- Cairo, see swift-graphics