lib/chunky_png.rb in chunky_png-1.0.0.rc1 vs lib/chunky_png.rb in chunky_png-1.0.0.rc2
- old
+ new
@@ -2,63 +2,100 @@
require 'set'
require 'zlib'
require 'stringio'
require 'enumerator'
-# Ruby 1.8 / 1.9 compatibility
-require 'chunky_png/compatibility'
-
-# PNG file structure
-require 'chunky_png/datastream'
-require 'chunky_png/chunk'
-
-# Colors
-require 'chunky_png/palette'
-require 'chunky_png/color'
-
-# Geometry
-require 'chunky_png/point'
-require 'chunky_png/vector'
-require 'chunky_png/dimension'
-
-# Canvas / Image classes
-require 'chunky_png/canvas'
-require 'chunky_png/image'
-
-# ChunkyPNG - the pury ruby library to access PNG files.
+# ChunkyPNG - the pure ruby library to access PNG files.
#
# The ChunkyPNG module defines some constants that are used in the
-# PNG specification.
+# PNG specification, specifies some exception classes, and serves as
+# a namespace for all the other modules and classes in this library.
#
+# {ChunkyPNG::Image}:: class to represent PNG images, including metadata.
+# {ChunkyPNG::Canvas}:: class to represent the image's canvas.
+# {ChunkyPNG::Color}:: module to work with color values.
+# {ChunkyPNG::Palette}:: represents the palette of colors used on a {ChunkyPNG::Canvas}.
+# {ChunkyPNG::Datastream}:: represents the internal structure of a PNG {ChunkyPNG::Image}.
+# {ChunkyPNG::Color}:: represents one chunk of data within a {ChunkyPNG::Datastream}.
+# {ChunkyPNG::Point}:: geometry helper class representing a 2-dimensional point.
+# {ChunkyPNG::Dimension}:: geometry helper class representing a dimension (i.e. width x height).
+# {ChunkyPNG::Vector}:: geometry helper class representing a series of points.
+#
# @author Willem van Bergen
module ChunkyPNG
- # The current version of ChunkyPNG. This value will be updated automatically
- # by them gem:release rake task.
- VERSION = "1.0.0.rc1"
+ # The current version of ChunkyPNG. This value will be updated
+ # automatically by them <tt>gem:release</tt> rake task.
+ VERSION = "1.0.0.rc2"
###################################################
# PNG international standard defined constants
###################################################
+ # Indicates that the PNG image uses grayscale colors, i.e. only a
+ # single teint channel.
+ # @private
COLOR_GRAYSCALE = 0
+
+ # Indicates that the PNG image uses true color, composed of a red
+ # green and blue channel.
+ # @private
COLOR_TRUECOLOR = 2
+
+ # Indicates that the PNG image uses indexed colors, where the values
+ # point to colors defined on a palette.
+ # @private
COLOR_INDEXED = 3
+
+ # Indicates that the PNG image uses grayscale colors with opacity, i.e.
+ # a teint channel with an alpha channel.
+ # @private
COLOR_GRAYSCALE_ALPHA = 4
+
+ # Indicates that the PNG image uses true color with opacity, composed of
+ # a red, green and blue channel, and an alpha value.
+ # @private
COLOR_TRUECOLOR_ALPHA = 6
- FILTERING_DEFAULT = 0
-
+ # Indicates that the PNG specification's default compression
+ # method is used (Zlib/Deflate)
+ # @private
COMPRESSION_DEFAULT = 0
+ # Indicates that the image does not use interlacing.
+ # @private
INTERLACING_NONE = 0
+
+ # Indicates that the image uses Adam7 interlacing.
+ # @private
INTERLACING_ADAM7 = 1
+ ### Filter method constants
+
+ # Indicates that the PNG specification's default filtering are
+ # being used in the image.
+ # @private
+ FILTERING_DEFAULT = 0
+
+ # Indicates that no filtering is used for the scanline.
+ # @private
FILTER_NONE = 0
+
+ # Indicates that SUB filtering is used for the scanline.
+ # @private
FILTER_SUB = 1
+
+ # Indicates that UP filtering is used for the scanline.
+ # @private
FILTER_UP = 2
+
+ # Indicates that AVERAGE filtering is used for the scanline.
+ # @private
FILTER_AVERAGE = 3
+
+ # Indicates that PAETH filtering is used for the scanline.
+ # @private
FILTER_PAETH = 4
###################################################
# ChunkyPNG exception classes
###################################################
@@ -86,8 +123,37 @@
# Exception that is raised if an expectation fails.
class OutOfBounds < ChunkyPNG::ExpectationFailed
end
+ # Empty byte array. This basically is an empty string, but with the encoding
+ # set correctly to ASCII-8BIT (binary) in Ruby 1.9.
+ # @return [String] An empty string, with encoding set to binary in Ruby 1.9
+ # @private
EMPTY_BYTEARRAY = String.method_defined?(:force_encoding) ? "".force_encoding('ASCII-8BIT').freeze : "".freeze
- EXTRA_BYTE = String.method_defined?(:force_encoding) ? "\0".force_encoding('ASCII-8BIT') : "\0"
+
+ # Null-byte, with the encoding set correctly to ASCII-8BIT (binary) in Ruby 1.9.
+ # @return [String] A binary string, consisting of one NULL-byte.
+ # @private
+ EXTRA_BYTE = String.method_defined?(:force_encoding) ? "\0".force_encoding('ASCII-8BIT') : "\0"
end
+
+
+# Ruby 1.8 / 1.9 compatibility
+require 'chunky_png/compatibility'
+
+# PNG file structure
+require 'chunky_png/datastream'
+require 'chunky_png/chunk'
+
+# Colors
+require 'chunky_png/palette'
+require 'chunky_png/color'
+
+# Geometry
+require 'chunky_png/point'
+require 'chunky_png/vector'
+require 'chunky_png/dimension'
+
+# Canvas / Image classes
+require 'chunky_png/canvas'
+require 'chunky_png/image'