libjpeg-ruby
libjpeg interface for ruby.
Installation
gem 'libjpeg-ruby'
And then execute:
$ bundle
Or install it yourself as:
$ gem install libjpeg-ruby
If you need to specify the libjpeg path, use the following options:
$ gem install libjpeg-ruby -- --with-jpeg-include ~/env/opts/include --with-jpeg-lib ~/env/opts/lib
Usage
decode sample
require 'jpeg'
dec = JPEG::Decoder.new(:pixel_format => :BGR)
p dec.read_header(IO.binread("test.jpg")
raw = dec << IO.binread("test.jpg")
p raw.meta
IO.binwrite("test.bgr", raw)
decode options
| option | value type | description |
|---|---|---|
| :pixel_format | String or Symbol | output format |
| :output_gamma | Float | gamma value |
| :fancy_upsampling | Boolean | T.B.D |
| :do_smoothing | Boolean | T.B.D |
| :opt_dither | [strMODE, bool2PASS, intNUM_COLORS] | T.B.D |
| :use_1ass_quantizer | Boolean | T.B.D |
| :use_external_colormap | Boolean | T.B.D |
| :use_2pass_quantizer | Boolean | T.B.D |
| :without_meta | Boolean | T.B.D |
| :expand_colormap | Booblean | T.B.D |
| :scale | Rational or Float | T.B.D |
| :dct_method | String or Symbol | T.B.D |
| :with_exif_tags | Boolean | Specify whether to read Exif tag. When set to true, the content of Exif tag will included in the meta information. |
| :orientation | Boolean | Specify whether to parse Exif orientation. When set to true, apply orientation for decode result. |
supported output format
RGB RGB24 YUV422 YUYV RGB565 YUV444 YCbCr BGR BGR24 RGBX RGB32 BGRX BGR32
supported DCT method
ISLOW IFAST FLOAT FASTEST
encode sample
require 'jpeg'
enc = JPEG::Encoder.new(640, 480, :pixel_format => :YCbCr)
IO.binwrite("test.jpg", enc << IO.binread("test.raw"))
encode option
encode options
| option | value type | description |
|---|---|---|
| :pixel_fromat | String or Symbol | input format |
| :quality | Integer | encode quality (0-100) |
| :scale | Rational or Float | |
| :dct_method | String or Symbol | T.B.D |
| :orientation | Integer | Specify Exif orientation value (1-8). |