rbruinier/swiftmicropng
This package currently offers a very minimal PNG encoder for uncompressed RGB and RGBA PNG files.
Example usage
let width = UInt32(512)
let height = UInt32(512)
var imageData: [UInt32] = .init(repeating: 0, count: Int(width * height))
var index = 0
for y: UInt32 in 0 ..< height {
for x: UInt32 in 0 ..< width {
let r: UInt32 = y & 0xFF
let g: UInt32 = x & 0xFF
let b: UInt32 = (0xFF - x & 0xFF)
imageData[index] = (r << 16) + (g << 8) + (b << 0)
index += 1
}
}
let encoder = MicroPNG()
let pngData = try! encoder.encodeRGBUncompressed(data: imageData,
width: width,
height: height)
pngData.withUnsafeBytes { pointer in
let data = Data(bytes: pointer.baseAddress!, count: pointer.count)
try! data.write(to: URL(fileURLWithPath: "EXPORT PATH"))
}Package Metadata
Repository: rbruinier/swiftmicropng
Default branch: main
README: README.md