Skip to content

Latest commit

 

History

History
285 lines (172 loc) · 10.1 KB

CHANGELOG.rdoc

File metadata and controls

285 lines (172 loc) · 10.1 KB

Changelog

The file documents the changes to this library over the different versions.

  • ChunkyPNG uses semantic versioning. This means that the public API will not change except for major versions.

  • Please add an entry to the “Unreleased changes” section in your pull requests, so I can move them into a numbered version section on release.

Unreleased changes

1.4.0 - 2020-12-28

  • Add compatibility for Ruby 3.0.

1.3.14 - 2018-11-21

  • Fix Canvas#inspect to not modify frozen string literal.

1.3.13 - 2018-11-21

  • Add frozen-string-literal: true to all source files.

  • Remove some backfills that were needed only for Ruby 1.8 compatibility.

1.3.12 - 2018-11-21

  • Implemented ChunkyPNG::Dimension#hash to fix some specs after a behavior change in RSpec.

1.3.11 - 2018-11-21

  • Updated project metadata as published on Rubygems.org

1.3.10 - 2018-01-23

  • Fixed a regression in Datastream#metadata, which was not able to deal with iTXt chunks.

1.3.9 - 2018-01-23

  • Add support for reading and writing an international textual data (iTXt chunks).

1.3.8 - 2016-08-31

  • Add support for reading and writing an image’s physical dimension (pHYs chunks).

1.3.7 - 2016-08-31

  • Performance improvement for Color.euclidean_distance_rgba.

  • Bugfix in decoding transparent pixels when decoding multiple images in a row.

1.3.6 - 2016-06-19

  • Allow reading images from streams that have trailing data after the IEND chunk.

  • Add compatibility for Ruby 2.3’s frozen string literals.

  • Documentation updates and small cleanups.

1.3.5 - 2015-10-28

  • Performance improvements for Canvas#crop! and ImageData.combine_chunks

  • Update chunky_png/rmagick to work with the latest versions of RMagick.

  • Bugfix in Color#from_hsl and Color#from_hsv when hue value is 360.

  • Fix encoding issue in Datastream#to_blob

1.3.4 - 2015-02-16

  • Assert compatibility with Ruby 2.2

  • Improved documentation using RDoc, so it is included on www.rubydoc.info/gems/chunky_png

  • Update chunkypng.com website; migrate some stuff from the wiki.

1.3.3 - 2014-10-24

  • Improve performance of Canvas#crop and Canvas#crop! by doing less memory allocations.

  • Update to RSPEC 3

  • Add CONTRIBUTING.rdoc file.

1.3.2 - 2014-10-18

  • Add HSV/HSL color conversions: Color.from_hsl, Color.to_hsl

  • Allow empty IDAT chunks to better conform to the PNG standard.

  • Small bugfix in image resampling.

  • Documentation and code readability improvements.

1.3.1 - 2014-04-28

  • Improve performance of Palette.from_canvas.

  • Add Color.euclidean_distance_rgba to compare colors.

  • Bugix in Canvas.from_bgr_stream.

  • Documentation and code readibility improvements.

  • README updates, include mention of screencast.

1.3.0 - 2014-02-10

  • Add support for parsing color that use three-hex notation. (e.g. #aaa instead of #aaaaaa)

  • Add Canvas#border! and Canvas#border to draw a border around a canvas.

  • Add Canvas#trim! and Canvas#trim to trim a border from a canvas.

1.2.9 - 2013-10-17

  • Set license in chunky_png.gemspec for better discoverability.

  • Improve error messages for Canvas#crop.

  • Use better gem release management tasks from bundler.

1.2.8 - 2013-03-30

  • Ruby 2.0 compatibility.

  • Fixed some encoding issues on JRuby.

  • Update Travis CI configuration to test on more Ruby versions.

1.2.7 - 2013-01-07

  • Small PNG decoding performnace improvements by using bitwise math.

1.2.6 - 2012-08-07

  • Add decompression bomb security warning to README.

  • Fix RMagick loading issue on case sensitive filesystems.

  • Some compatibility fixes for the upcoming Ruby 2.0.

  • Allow more data-url notations for ChunkyPNG::Canvas.from_data_url.

1.2.5 - 2011-09-23

  • Edge case bugfix in Color.decompose_alpha_component that could get triggered in the change_theme_color! method.

1.2.4 - 2011-09-14

  • Added data URL importing Canvas.from_data_url.

1.2.3 - 2011-09-14

  • Added data URL exporting Canvas#to_data_url to easily use PNGs inline in CSS or HTML.

1.2.2 - 2011-09-14

  • Workaround for performance bug in REE.

1.2.1 - 2011-08-10

  • Added bicubic resampling of images.

  • Update resampling code to use integer math instead of floating points.

1.2.0 - 2011-05-08

  • Properly read PNG files with a tRNS chunk in color mode 0 (grayscale) or 2 (true color).

1.1.2 - 2011-05-06

  • Added Color.to_grayscale and Canvas#grayscale! to convert colors and canvases to grayscale.

  • Memory footprint improvement of Canvas#resample!

1.1.1 - 2011-04-22

  • Added Canvas#to_alpha_channel_bytes and Canvas#to_grayscale_stream to export raw pixel data.

  • Spec suite cleanup

1.1.0 - 2011-03-19

  • Add bezier curve drawing: Canvas#bezier_curve.

  • RDoc fixes & improvements.

1.0.1 - 2011-03-08

  • Performance improvements.

1.0.0 - 2011-03-06

There are some API changes for this release. If you are using Canvas#compose or Canvas#replace, these methods will no longer operate in place, but will return a new canvas instance instead. The in place versions have been renamed to compose! and replace! to be more consistent with the rest of the API.

  • Added image resampling using the nearest neighbor algorithm: Canvas#resample.

  • Added circle and polygon drawing methods: Canvas#circle and Canvas#polygon.

  • Added in place version of Canvas#crop, Canvas#rotate_180, Canvas#flip_horizontally and Canvas#flip_vertically. Just add a bang to the method name (e.g. Canvas#crop!) and it will change the current canvas instead of returning a new one. These implementations are also more memory and CPU efficient.

  • Added geometry helper classes: ChunkyPNG::Point, ChunkyPNG::Dimension and ChunkyPNG::Vector.

  • Added a list of HTML named colors. Get them by calling ChunkyPNG::Color(:teal) or ChunkyPNG::Color('red @ 0.8')

  • Added encoding support for 1-, 2-, and 4-bit grayscale images.

  • Cleaned up auto-detection of color mode settings. It will now choose 1 bit grayscale mode if an image only contains black and white. (The other low bitrate grayscale modes are never chosen automatically.)

  • RDoc improvements. See rdoc.info/gems/chunky_png.

  • ChunkyPNG is now also tested on Ruby 1.8.6.

0.12.0 - 2010-12-12

  • Added support for encoding indexed images with a low bitrate. It will automatically use less bits per pixel if possible.

  • Improved testing setup. ChunkyPNG is now tested on Ruby 1.8.7, 1.9.2, JRuby and Rubinius.

0.11.0 - 2010-11-16

  • Decoding of 1, 2 and 4 bit indexed color images.

  • Decoding of 1, 2 and 4 bit grayscale images.

  • Decoding 16 bit images. The extra bits will be discarded, so the image will be loaded as 8 bit.

  • Used the official PNG suite to build a more complete test suite.

0.10.5 - 2010-10-21

  • Bugfix: allow 256 instead of 255 colors for indexed images.

0.10.4 - 2010-10-17

  • Improved handling of binary encoding for strings in Ruby 1.9.

0.10.3 - 2010-10-07

  • Small fix to make grayscale use the B byte consistently.

0.10.2 - 2010-10-04

  • Another small fix for OilyPNG compatibility

0.10.1 - 2010-10-03

  • Small fix for OilyPNG compatibility

0.10.0 - 2010-10-03

  • Refactored decoding and encoding to work on binary strings instead of arrays of integers. This gives a nice speedup and uses less memory. Thanks to Yehuda Katz for the idea.

0.9.2 - 2010-09-16

  • Fixed an issue with interlaced images.

0.9.1 - 2010-09-15

  • Fixed image metadata issue when duplicating images.

0.9.0 - 2010-08-18

  • Added flip_horizontally, flip_vertically, rotate_left, rotate_right and rotate_180 to ChunkyPNG::Canvas.

  • Now raises ChunkyPNG::OutOfBounds exceptions when referencing coordinates outside the image bounds.

  • Added Gemfile for development dependency management.

0.8.0 - 2010-06-30

  • Added ChunkyPNG::Image#rect to draw simple rectangles.

  • Fixed composing a transparent color on a fully transparent background.

0.7.3 - 2010-04-28

  • Based on the suggestion of [Dirkjan Bussink](github.com/dbussink), introduced custom exception classes:

    • ChunkyPNG::SignatureMismatch is raised when the PNG signature could not be found. Usually this means the the file is not a PNG image.

    • ChunkyPNG::CRCMismatch is raised when the a CRC check for a chunk in the PNG file fails.

    • ChunkyPNG::NotSupported is raised when the PNG image uses a feature that ChunkyPNG does not support.

    • ChunkyPNG::ExpectationFailed is raised when a required expectation failed.

0.7.2 - 2010-04-28 [YANKED]

0.7.1 - 2010-03-23

  • Some fixes for 32-bit systems.

0.7.0 - 2010-03-15

  • Added :best_compression saving routine to allow creating the smallest images possible.

  • Added option to control Zlib compression level while saving.

0.6.0 - 2010-02-25

  • Added methods to easily create different color variants of an image with a color theme. See [[Images with a color theme]] for more information.

0.5.8 - 2010-02-24

  • Ruby 1.8.6 compatibility fixes

  • Improved API documentation.

0.5.5 - 2010-02-15

  • Added alpha decomposition to extract a color mask from a themed image.

  • Improved API documentation.

0.5.4 - 2010-01-17

  • Added point and line anti-aliased drawing functions.

0.5.3 - 2010-01-16

  • Removed last occurrences of floating math to speed up the library.

  • Added importing of ABGR and BGR streams.

  • Added exporting an image as ABGR stream.

0.5.2 - 2010-01-15

  • Ruby 1.9 compatibility fixes.

  • Improved speed of PNG decoding.

  • Bugfix in average scanline decoding filter.

0.5.1 - 2010-01-15

  • Added :fast_rgba and :fast_rgb saving routines, which yield a 1500% speedup when saving an image.

0.5.0 - 2010-01-15

  • Complete rewrite of the earlier versions, now including awesomeness and unicorns.