Native mixin to speed up ChunkyPNG.
C Ruby
Latest commit 50b79f1 Sep 13, 2016 @wvanbergen Bump version to 1.2.1
Failed to load latest commit information.
ext/oily_png Update PNG decoding to use palette that is passed around, instead of … Sep 13, 2016
lib Bump version to 1.2.1 Sep 13, 2016
spec Added c extensions for Canvas#rotate_left! and Canvas#rotate_right! Oct 23, 2014
tasks Use bundler style gem management. Sep 4, 2013
.gitignore Update to latest bundler best practices. Dec 19, 2010
.travis.yml Update Travis Matrix May 28, 2015
Gemfile Use bundler style gem management. Sep 4, 2013
LICENSE Bump license year 2013 -> 2014 Feb 10, 2014
README.rdoc Build status Apr 14, 2014
Rakefile Use C99 standard when compiling to get rid of C90 warnings warnings. Sep 4, 2013


OilyPNG Build Status

OilyPNG is a Ruby C extension to speed up the pure Ruby ChunkyPNG library. It is a standalone module, so it does not require LibPNG, ImageMagick or any other library. Currently it has an alternative implementation of decoding and encoding PNGs, making these operations much faster, especially for PNG images that apply filtering.

Performance comparison:

Warning: this is my first C code in years. It may blow up your PC after leaking memory all over the place, killing a kitten in the process. You have been warned.


  1. First install the gem and make it available to your project.

  2. Use require “oily_png” instead of require “chunky_png”

  3. Presto! Now use ChunkyPNG as you normally would and get an instant speedup.

See for more information on how to use the ChunkyPNG API.


License: MIT (see LICENSE)

This C module is written by Willem van Bergen with help from Dirkjan Bussink.