stumpy_png
Interface
StumpyPNG.read(path) : Canvas
read a PNG image fileStumpyPNG.write(canvas, path, bit_depth: 16, color_type: :grayscale)
saves a canvas as a PNG image filebit_depth
is optional, valid values are8
and16
(default)color_type
is optional, valid values are:grayscale
,:grayscale_alpha
,:rgb
and:rgb_alpha
(default)
StumpyPNG::PNG
, helper class to store some state while parsing PNG filesCanvas
andRGBA
from stumpy_core
Usage
Reading
require "stumpy_png"
canvas = StumpyPNG.read("foo.png")
r, g, b = canvas[0, 0].to_rgb8
puts "red=#{r}, green=#{g}, blue=#{b}"
Writing
include StumpyPNG
canvas = Canvas.new(256, 256)
(0...255).each do |x|
(0...255).each do |y|
# RGBA.from_rgb_n(values, bit_depth) is an internal helper method
# that creates an RGBA object from a rgb triplet with a given bit depth
color = RGBA.from_rgb_n(x, y, 255, 8)
canvas[x, y] = color
end
end
StumpyPNG.write(canvas, "rainbow.png")
(See examples/
for more examples)
Reading PNG files
Color Types
- Grayscale
- Grayscale + Alpha
- RGB
- RGB + Alpha
- Palette
Filter Types
- None
- Sub
- Up
- Average
- Paeth
Interlacing Methods
- None
- Adam7
Ancillary Chunks
- tRNS
- cHRM
- gAMA
- iCCP
- sBIT
- sRGB
- tEXt
- zTXt
- iTXt
- bKGD
- hIST
- pHYs
- sPLT
- tIME
Writing
- RGB with 8 or 16 bits
- RGB + Alpha with 8 or 16 bits
- Grayscale with 8 or 16 bits
- Grayscale + Alpha with 8 or 16 bits
Contributors
Thanks goes to these wonderful people (emoji key):
Chris Hobbs |
Ary Borenszweig |
Alex Muscar |
---|
This project follows the all-contributors specification. Contributions of any kind welcome!