Skip to content

zerogtiger/tiny-pixels-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tiny-Pixels Engine

A C++ graphics compositing library.

See docs.md for documentation

What Tiny-Pixels can do

Demo

To-do

  • Color
    • Invert
    • Histogram
      • Read on histogram equalization for new techniques of adjustment
    • Hue correct
    • Tonal correction
    • Color balance (lift, gamma, gain)
    • Saturation
    • Exposure
    • Gamma
    • HSV adjustments
    • RGB curves
      • Catmull-Rom spline
      • Eyedropper for black, white, gray levels
    • Tone map
    • White balance
      • Eyedropper
    • False color
    • Mixing options
      • Alpha over
      • Separate colors (RGBA channels)
      • Combine colors (RGBA channels)
      • Color ramp
        • Constant
        • Linear
        • Bézier
        • B-Spline
          • Read on De Boor's for possible optimization
  • Filtering
    • Color reduce
      • 3-bit color
      • 3-bit Floyd-Steinberg error diffusion
      • 8-bit color
      • 8-bit Floyd-Steinberg error diffusion
      • 16-bit color
      • 16-bit Floyd-Steinberg error diffusion
      • 8/16-bit color quantization
    • Blur
      • Box
      • Gaussian
      • Bokeh
    • Anti-aliasing
    • Masking
    • Vignette
    • Color matrix
  • Transform
    • Rotate
    • Scale
      • Nearest
      • Bilinear
      • Bicubic
      • Fourier
      • Edge
      • HQX
      • Mipmap
    • Translate
    • Crop
    • Flip
    • Lens distortion
  • Misc.
    • Frame
    • Text overlay
    • Procedural texture generation
      • White noise
      • (Improved) Perlin noise
      • Brick
      • Gradient
      • Musgrave
      • Simplex noise
      • Voronoi
      • Wave
  • Drawing
    • Lines (unuseful)
    • Rectangles
      • Support percentage of image
    • Ellipse
  • Documentation (on-going)

High Priority Enhancements/Bug Fixes

  • Color ramp linear and b-spline interpolation shows weird red when using monotone control points
  • Replace interpolation in code with dedicated function from Interpolation class
  • Bilinear scaling (Image::preview_color_ramp then scale to a large image via Image::f_scale with TwoDimInterp::Biliea as interpolation method
  • Refactor Adjustment, Color and Font from image.h

Medium Priority Enhancements/Bug Fixes

  • Standardize Color class function design
  • Optimize memory for Image::perlin_noise (overuse of array memory for gradient vectors)
  • Different interpolation methods for each channel for RGB curves
  • Show area instead of line in RGB curve preview
  • Show control points in RGB curve preview
  • Single channel image support for rgb curves
  • Merge preview of RGB curves to one image
  • Replace retrieving and setting data with dedicated get and set functions from Image class
  • Test Color::apply_adj_rgb thoroughly for hue, saturation, value, lift, gamma, gain
  • Support separated channel images in Image::HSV
  • Color class HSV integration
  • Demo images in README.md
  • Ensure uniformity of logic when using data from another image (first channel vs. average grayscale vs. separated channel image)
  • Unnecessary memory use/leaks
  • Rename enum to generalize for 1-D and 2-D interpolation methods

Low Priority Enhancements/Bug Fixes

  • Clean up code in Image::false_color function
  • Use uint_t and size_t where necessary
  • Edge bleeding in edge detection via Image::edge() function due to Fast Fourier transform limitations
  • Sobel edge detection gradient for single channel images
  • Make makefile build/run more efficient
  • Refactor src/ and move library files into src/lib/

About

A C++ graphics compositing library.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published