PNG
Constants
MAGIC = Bytes[137, 80, 78, 71, 13, 10, 26, 10]
MAGIC is the first 8 bytes of a PNG file: "\x89PNG\r\n\x1a\n"
VERSION = {{ (`shards version`).stringify.chomp }}
Class methods
read(path : String) : Canvas
Reads a png stream returns a PNG::Canvas
canvas = PNG.read("examples/gradient.png")
canvas.header.color_type # => PNG::ColorType::RGB
canvas[0, 0] # => Bytes[0, 255, 0]
write(path : String, canvas : Canvas, &heuristic : Scanline | Nil, Scanline -> Scanline)
Write a canvas to a .png file given a path
canvas = PNG::Canvas.new(255, 255)
0.upto(canvas.height - 1) do |y|
0.upto(canvas.width - 1) do |x|
canvas[x, y] = Bytes[x, 255, y]
end
end
PNG.write("examples/gradient.png", canvas)
write(io : IO, canvas : Canvas, &heuristic : Scanline | Nil, Scanline -> Scanline)
Write a canvas to a given io in png format.
write(path : String, canvas : Canvas)
Sourcewrite(io : IO, canvas : Canvas)
SourceMacros
Nested types
- PNG::Canvas
- PNG::Chunk
- PNG::Color(T, N)
- PNG::ColorType
- PNG::CompressionMethod
- PNG::Error
- PNG::Filter
- PNG::FilterMethod
- PNG::FilterType
- PNG::Gray(T)
- PNG::GrayAlpha(T)
- PNG::HSV
- PNG::Header
- PNG::Heuristic
- PNG::Inflater
- PNG::Interlacing
- PNG::PackedData(T)
- PNG::Palette
- PNG::Parser
- PNG::PixelSize
- PNG::RGB(T)
- PNG::RGBA(T)
- PNG::Scanline