Gin
Loading...
Searching...
No Matches
Enumerations | Functions
gin_imageeffects.h File Reference

Image processing effects and filters. More...

Enumerations

enum class  ResizeAlgorirm { ResizeAlgorirm::avir , ResizeAlgorirm::lanczos }
 Image resize algorithms for high-quality scaling. More...
 
enum  BlendMode {
  Normal , Lighten , Darken , Multiply ,
  Average , Add , Subtract , Difference ,
  Negation , Screen , Exclusion , Overlay ,
  SoftLight , HardLight , ColorDodge , ColorBurn ,
  LinearDodge , LinearBurn , LinearLight , VividLight ,
  PinLight , HardMix , Reflect , Glow ,
  Phoenix
}
 Blending modes for image compositing. More...
 

Functions

void applyVignette (juce::Image &img, float amount, float radius, float falloff, juce::ThreadPool *threadPool=nullptr)
 Applies a vignette effect to an image.
 
void applySepia (juce::Image &img, juce::ThreadPool *threadPool=nullptr)
 Applies a sepia tone effect to an image.
 
void applyGreyScale (juce::Image &img, juce::ThreadPool *threadPool=nullptr)
 Converts an image to greyscale.
 
void applySoften (juce::Image &img, juce::ThreadPool *threadPool=nullptr)
 Softens an image by reducing detail.
 
void applySharpen (juce::Image &img, juce::ThreadPool *threadPool=nullptr)
 Sharpens an image by enhancing edges.
 
void applyGamma (juce::Image &img, float gamma, juce::ThreadPool *threadPool=nullptr)
 Applies gamma correction to an image.
 
void applyInvert (juce::Image &img, juce::ThreadPool *threadPool=nullptr)
 Inverts all colors in an image.
 
void applyContrast (juce::Image &img, float contrast, juce::ThreadPool *threadPool=nullptr)
 Adjusts the contrast of an image.
 
void applyBrightnessContrast (juce::Image &img, float brightness, float contrast, juce::ThreadPool *threadPool=nullptr)
 Adjusts brightness and contrast of an image.
 
void applyHueSaturationLightness (juce::Image &img, float hue, float saturation, float lightness, juce::ThreadPool *threadPool=nullptr)
 Adjusts hue, saturation and lightness of an image.
 
void applyStackBlur (juce::Image &img, int radius)
 Applies a fast, high-quality blur to an image.
 
juce::Image applyResize (const juce::Image &img, int width, int height, ResizeAlgorirm resizeAlgorirm=ResizeAlgorirm::avir)
 Resizes an image to specific dimensions using high-quality algorithm.
 
juce::Image applyResize (const juce::Image &img, float factor, ResizeAlgorirm resizeAlgorirm=ResizeAlgorirm::avir)
 Resizes an image by a scaling factor.
 
void applyGradientMap (juce::Image &img, const juce::ColourGradient &gradient, juce::ThreadPool *threadPool=nullptr)
 Applies a gradient map to an image.
 
void applyGradientMap (juce::Image &img, const juce::Colour c1, const juce::Colour c2, juce::ThreadPool *threadPool=nullptr)
 Applies a two-color gradient map to an image.
 
void applyColour (juce::Image &img, juce::Colour c, juce::ThreadPool *threadPool=nullptr)
 Sets all pixels in an image to a solid color.
 
void applyBlend (juce::Image &dst, const juce::Image &src, BlendMode mode, float alpha=1.0f, juce::Point< int > position={}, juce::ThreadPool *threadPool=nullptr)
 Blends two images using the specified blend mode.
 
void applyBlend (juce::Image &dst, BlendMode mode, juce::Colour c, juce::ThreadPool *threadPool=nullptr)
 Blends a solid color onto an image using the specified blend mode.
 
uint8_t channelBlendNormal (int A, int)
 
uint8_t channelBlendLighten (int A, int B)
 
uint8_t channelBlendDarken (int A, int B)
 
uint8_t channelBlendMultiply (int A, int B)
 
uint8_t channelBlendAverage (int A, int B)
 
uint8_t channelBlendAdd (int A, int B)
 
uint8_t channelBlendSubtract (int A, int B)
 
uint8_t channelBlendDifference (int A, int B)
 
uint8_t channelBlendNegation (int A, int B)
 
uint8_t channelBlendScreen (int A, int B)
 
uint8_t channelBlendExclusion (int A, int B)
 
uint8_t channelBlendOverlay (int A, int B)
 
uint8_t channelBlendSoftLight (int A, int B)
 
uint8_t channelBlendHardLight (int A, int B)
 
uint8_t channelBlendColorDodge (int A, int B)
 
uint8_t channelBlendColorBurn (int A, int B)
 
uint8_t channelBlendLinearDodge (int A, int B)
 
uint8_t channelBlendLinearBurn (int A, int B)
 
uint8_t channelBlendLinearLight (int A, int B)
 
uint8_t channelBlendVividLight (int A, int B)
 
uint8_t channelBlendPinLight (int A, int B)
 
uint8_t channelBlendHardMix (int A, int B)
 
uint8_t channelBlendReflect (int A, int B)
 
uint8_t channelBlendGlow (int A, int B)
 
uint8_t channelBlendPhoenix (int A, int B)
 
uint8_t channelBlendAlpha (uint8_t A, uint8_t B, float O)
 

Detailed Description

Image processing effects and filters.

This file provides a collection of image processing functions for applying various visual effects, adjustments, and filters to JUCE images. Most functions modify images in-place and support optional multithreading via ThreadPool.

Effects categories:

See also
applyBlend for compositing images with blend modes
applyResize for high-quality image scaling