CrImage::Paletted
Inherits CrImage::PalettedImage / CrImage::Image / Reference / Object
Paletted is an in-memory indexed color image.
Each pixel is stored as a single byte index (0-255) into a color palette. This format is memory-efficient for images with limited colors (e.g., GIF).
Memory layout: Contiguous byte array with 1 byte per pixel (palette index) Color model: Palette (up to 256 colors)
Use Paletted for:
- GIF images (256 colors max)
- Images with limited color palettes
- Reducing file size through color quantization
Example:
palette = CrImage::Color::Palette.new([
CrImage::Color::RED,
CrImage::Color::GREEN,
CrImage::Color::BLUE,
])
img = CrImage::Paletted.new(CrImage.rect(0, 0, 640, 480), palette)
img.set_color_index(100, 100, 0_u8) # Set to first palette color
Constructors
Instance methods
Returns true if this reference is the same as other. Invokes same?.
Returns the color of the pixel at (x,y).
If coordinates are outside bounds, returns a default color (typically transparent black) rather than raising an exception. This simplifies image processing algorithms.
at(bounds().min.x, bounds().min.y)returns the upper-left pixel of the grid.at(bounds().max.x-1, bounds().max.y-1)returns the lower-right one.
For explicit nil on out-of-bounds, concrete types provide at? method.
bounds returns the domain for which at can return non-zero color.
The bounds do not necessarily contain the point(0,0).
color_index_at returns the pallete index of the pixel at (x,y).
See Object#hash(hasher)
Returns a read-only view of the pixel buffer Modifying the returned Bytes directly is unsafe and may break image invariants Use at()/set() methods for safe pixel manipulation :nodoc:
Sets the color of the pixel at (x,y).
If the provided coordinates are not within bounds, this method does nothing (no-op). This simplifies drawing operations that may extend beyond image boundaries.
sub_image returns an image representing the portion of the image visible though r. the returned value shares pixes with the original image.