/usr/lib/ruby/vendor_ruby/chunky_png.rb is in ruby-chunky-png 1.2.8-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | # Basic requirements from standard library
require 'set'
require 'zlib'
require 'stringio'
require 'enumerator'
# ChunkyPNG - the pure ruby library to access PNG files.
#
# The ChunkyPNG module defines some constants that are used in the
# 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 <tt>gem:release</tt> rake task.
VERSION = "1.2.8"
###################################################
# 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
# 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
###################################################
# Default exception class for ChunkyPNG
class Exception < ::StandardError
end
# Exception that is raised for an unsupported PNG image.
class NotSupported < ChunkyPNG::Exception
end
# Exception that is raised if the PNG signature is not encountered at the
# beginning of the file.
class SignatureMismatch < ChunkyPNG::Exception
end
# Exception that is raised if the CRC check for a block fails
class CRCMismatch < ChunkyPNG::Exception
end
# Exception that is raised if an expectation fails.
class ExpectationFailed < ChunkyPNG::Exception
end
# Exception that is raised if an expectation fails.
class OutOfBounds < ChunkyPNG::ExpectationFailed
end
def self.force_binary(str)
str.respond_to?(:force_encoding) ? str.force_encoding('BINARY') : str
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 = force_binary("").freeze
# 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 = force_binary("\0").freeze
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'
|