All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Initial release of BitmapPlusPlus Ruby bindings
- Complete Ruby bindings for the BitmapPlusPlus C++ library using Rice
- Support for creating and manipulating 24-bit BMP images
- Drawing primitives:
draw_line- Draw lines using Bresenham's algorithmdraw_rect/fill_rect- Draw rectangle outlines and filled rectanglesdraw_triangle/fill_triangle- Draw triangle outlines and filled trianglesdraw_circle/fill_circle- Draw circle outlines and filled circles using midpoint algorithm
- Pixel manipulation:
get(x, y)/set(x, y, color)- Get/set pixels by coordinates[]/[]=- Array-style access by linear indexBmp::Pixelclass with RGB component access
- Image transformations (immutable, return new bitmaps):
flip_v- Vertical flipflip_h- Horizontal fliprotate_90_left- 90-degree counter-clockwise rotationrotate_90_right- 90-degree clockwise rotation
- File I/O:
save(filename)- Save to BMP fileload(filename)- Load from BMP file- Constructor accepts filename to load on creation
- Iterator support:
each- Iterate over all pixelseach_reverse- Reverse iteration
- 32 predefined color constants (Aqua, Beige, Black, Blue, etc.)
Bmp::BitmapHeaderstruct for accessing BMP file header informationBmp::Exceptionfor error handling- RBS type signatures for static type checking
- Minitest test suite
- Example scripts (fractals, random colors, drawing primitives)
- Ruby >= 3.0.0
- Rice >= 4.8 (C++ binding library)
- C++17 compatible compiler