Dependencies
moon add bikallem/imageimport {
"bikallem/image/image",
"bikallem/image/color",
"bikallem/image/png",
}
fn png_roundtrip() -> Unit raise {
let img = @image.new_image_rgba(@image.rect(0, 0, 2, 2))
img.set_rgba(0, 0, { r: b'\xff', g: b'\x00', b: b'\x00', a: b'\xff' })
img.set_rgba(1, 0, { r: b'\x00', g: b'\xff', b: b'\x00', a: b'\xff' })
img.set_rgba(0, 1, { r: b'\x00', g: b'\x00', b: b'\xff', a: b'\xff' })
img.set_rgba(1, 1, { r: b'\xff', g: b'\xff', b: b'\xff', a: b'\xff' })
let encoded = @png.encode(@image.AnyImage::RGBA(img))
let decoded = @png.decode(encoded)
let (r, g, b, a) = decoded.at(0, 0).rgba()
ignore((r, g, b, a))
}import {
"bikallem/image/image",
"bikallem/image/png",
}
fn register_png() -> Unit {
@image.register_format(
"png",
"\x89PNG\r\n\x1a\n",
@png.decode,
@png.decode_config,
)
}moon test
moon check
moon fmt
moon info
make test
make bench
make parity
make callgrindDependencies