libpng-ruby

libpng interface for ruby.

Installation

gem 'libpng-ruby'

And then execute:

$ bundle

Or install it yourself as:

$ gem install libpng-ruby

If you need to specify the libpng path, use the following options:

$ gem install libpng-ruby -- --with-png-include ~/env/opts/include --with-png-lib ~/env/opts/lib

Usage

decode sample

require 'png'

dec = PNG::Decoder.new(:pixel_format => :BGR)

p dec.read_header(IO.binread("test.png"))

raw = dec << IO.binread("test.png")
p raw.meta

IO.binwrite("test.bgr", raw)

decode options

option value type description
:api_type "simplified" or "classic"
:pixel_format String or Symbol output format
(ignored when to use classic API)
:without_meta Boolean T.B.D
:display_gamma Numeric T.B.D
(ignored when to use simplified API)

supported output color type

GRAY GRAYSCALE GA AG RGB BGR RGBA ARGB BGRA ABGR

encode sample

require 'png'

enc = PNG::Encoder.new(640, 480, :color_type => :YCbCr)

IO.binwrite("test.png", enc << IO.binread("test.raw"))

encode options

option value type description
:pixel_format String or Symbol input pixel format
:interlace Boolean use interlace mode
:compression Integer or String or Symbol compression level
:text Hash text information
:time Boolean with tIME chunk
:gamma Numeric file gamma value

supported input color type

GRAY GRASCALE GA RGB RGBA

available compression level

Integer

0 to 9(0:no compression, 9:best compression).

String

NO_COMPRESSION BEST_SPEED BEST_COMPRESSION DEFAULT