SDL3_gfx 1.0.1
Graphics primitives and surface functions for SDL3
SDL3_imageFilter.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <SDL3/SDL.h>
#include "SDL3_imageFilter.h"

Go to the source code of this file.

Macros

#define SWAP_32(x)
 Swaps the byte order in a 32bit integer (LSB becomes MSB, etc.).
 

Functions

int SDL_imageFilterAdd (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)
 Filter using Add: D = saturation255(S1 + S2)
 
int SDL_imageFilterMean (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)
 Filter using Mean: D = S1/2 + S2/2.
 
int SDL_imageFilterSub (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)
 Filter using Sub: D = saturation0(S1 - S2)
 
int SDL_imageFilterAbsDiff (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)
 Filter using AbsDiff: D = | S1 - S2 |.
 
int SDL_imageFilterMult (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)
 Filter using Mult: D = saturation255(S1 * S2)
 
int SDL_imageFilterMultNor (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)
 Filter using MultNor: D = S1 * S2.
 
int SDL_imageFilterMultDivby2 (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)
 Filter using MultDivby2: D = saturation255(S1/2 * S2)
 
int SDL_imageFilterMultDivby4 (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)
 Filter using MultDivby4: D = saturation255(S1/2 * S2/2)
 
int SDL_imageFilterBitAnd (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)
 Filter using BitAnd: D = S1 & S2.
 
int SDL_imageFilterBitOr (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)
 Filter using BitOr: D = S1 | S2.
 
int SDL_imageFilterDiv (unsigned char *Src1, unsigned char *Src2, unsigned char *Dest, unsigned int length)
 Filter using Div: D = S1 / S2.
 
int SDL_imageFilterBitNegation (unsigned char *Src1, unsigned char *Dest, unsigned int length)
 Filter using BitNegation: D = !S.
 
int SDL_imageFilterAddByte (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char C)
 Filter using AddByte: D = saturation255(S + C)
 
int SDL_imageFilterAddUint (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned int bpp, unsigned int C)
 Filter using AddUint: D = saturation255((S[i] + Cs[i % BPP])
 
int SDL_imageFilterAddByteToHalf (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char C)
 Filter using AddByteToHalf: D = saturation255(S/2 + C)
 
int SDL_imageFilterSubByte (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char C)
 Filter using SubByte: D = saturation0(S - C)
 
int SDL_imageFilterSubUint (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned int bpp, unsigned int C)
 Filter using SubUint: D = saturation0(S[i] - Cs[i % BPP])
 
int SDL_imageFilterShiftRight (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char N)
 Filter using ShiftRight: D = saturation0(S >> N)
 
int SDL_imageFilterShiftRightUint (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char N)
 Filter using ShiftRightUint: D = saturation0((uint)S[i] >> N)
 
int SDL_imageFilterMultByByte (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char C)
 Filter using MultByByte: D = saturation255(S * C)
 
int SDL_imageFilterShiftRightAndMultByByte (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char N, unsigned char C)
 Filter using ShiftRightAndMultByByte: D = saturation255((S >> N) * C)
 
int SDL_imageFilterShiftLeftByte (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char N)
 Filter using ShiftLeftByte: D = (S << N)
 
int SDL_imageFilterShiftLeftUint (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char N)
 Filter using ShiftLeftUint: D = ((uint)S << N)
 
int SDL_imageFilterShiftLeft (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char N)
 Filter ShiftLeft: D = saturation255(S << N)
 
int SDL_imageFilterBinarizeUsingThreshold (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char T)
 Filter using BinarizeUsingThreshold: D = (S >= T) ? 255:0.
 
int SDL_imageFilterClipToRange (unsigned char *Src1, unsigned char *Dest, unsigned int length, unsigned char Tmin, unsigned char Tmax)
 Filter using ClipToRange: D = (S >= Tmin) & (S <= Tmax) S:Tmin | Tmax.
 
int SDL_imageFilterNormalizeLinear (unsigned char *Src, unsigned char *Dest, unsigned int length, int Cmin, int Cmax, int Nmin, int Nmax)
 Filter using NormalizeLinear: D = saturation255((Nmax - Nmin)/(Cmax - Cmin)*(S - Cmin) + Nmin)
 
int SDL_imageFilterConvolveKernel3x3Divide (unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char Divisor)
 Filter using ConvolveKernel3x3Divide: Dij = saturation0and255( ... )
 
int SDL_imageFilterConvolveKernel5x5Divide (unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char Divisor)
 Filter using ConvolveKernel5x5Divide: Dij = saturation0and255( ... )
 
int SDL_imageFilterConvolveKernel7x7Divide (unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char Divisor)
 Filter using ConvolveKernel7x7Divide: Dij = saturation0and255( ... )
 
int SDL_imageFilterConvolveKernel9x9Divide (unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char Divisor)
 Filter using ConvolveKernel9x9Divide: Dij = saturation0and255( ... )
 
int SDL_imageFilterConvolveKernel3x3ShiftRight (unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char NRightShift)
 Filter using ConvolveKernel3x3ShiftRight: Dij = saturation0and255( ... )
 
int SDL_imageFilterConvolveKernel5x5ShiftRight (unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char NRightShift)
 Filter using ConvolveKernel5x5ShiftRight: Dij = saturation0and255( ... )
 
int SDL_imageFilterConvolveKernel7x7ShiftRight (unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char NRightShift)
 Filter using ConvolveKernel7x7ShiftRight: Dij = saturation0and255( ... )
 
int SDL_imageFilterConvolveKernel9x9ShiftRight (unsigned char *Src, unsigned char *Dest, int rows, int columns, signed short *Kernel, unsigned char NRightShift)
 Filter using ConvolveKernel9x9ShiftRight: Dij = saturation255( ... )
 
int SDL_imageFilterSobelX (unsigned char *Src, unsigned char *Dest, int rows, int columns)
 Filter using SobelX: Dij = saturation255( ... )
 
int SDL_imageFilterSobelXShiftRight (unsigned char *Src, unsigned char *Dest, int rows, int columns, unsigned char NRightShift)
 Filter using SobelXShiftRight: Dij = saturation255( ... )
 

Macro Definition Documentation

◆ SWAP_32

#define SWAP_32 ( x)
Value:
(((x) >> 24) | (((x) & 0x00ff0000) >> 8) | (((x) & 0x0000ff00) << 8) | ((x) << 24))

Swaps the byte order in a 32bit integer (LSB becomes MSB, etc.).

Definition at line 44 of file SDL3_imageFilter.c.

Function Documentation

◆ SDL_imageFilterAbsDiff()

int SDL_imageFilterAbsDiff ( unsigned char * Src1,
unsigned char * Src2,
unsigned char * Dest,
unsigned int length )

Filter using AbsDiff: D = | S1 - S2 |.

Parameters
Src1Pointer to the start of the first source byte array (S1).
Src2Pointer to the start of the second source byte array (S2).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source arrays.
Returns
Returns 0 for success or -1 for error.

Definition at line 181 of file SDL3_imageFilter.c.

◆ SDL_imageFilterAdd()

int SDL_imageFilterAdd ( unsigned char * Src1,
unsigned char * Src2,
unsigned char * Dest,
unsigned int length )

Filter using Add: D = saturation255(S1 + S2)

Parameters
Src1Pointer to the start of the first source byte array (S1).
Src2Pointer to the start of the second source byte array (S2).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source arrays.
Returns
Returns 0 for success or -1 for error.

Definition at line 58 of file SDL3_imageFilter.c.

◆ SDL_imageFilterAddByte()

int SDL_imageFilterAddByte ( unsigned char * Src1,
unsigned char * Dest,
unsigned int length,
unsigned char C )

Filter using AddByte: D = saturation255(S + C)

Parameters
Src1Pointer to the start of the source byte array (S).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source array.
CConstant value to add (C).
Returns
Returns 0 for success or -1 for error.

Definition at line 548 of file SDL3_imageFilter.c.

◆ SDL_imageFilterAddByteToHalf()

int SDL_imageFilterAddByteToHalf ( unsigned char * Src1,
unsigned char * Dest,
unsigned int length,
unsigned char C )

Filter using AddByteToHalf: D = saturation255(S/2 + C)

Parameters
Src1Pointer to the start of the source byte array (S).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source array.
CConstant to add (C).
Returns
Returns 0 for success or -1 for error.

Definition at line 652 of file SDL3_imageFilter.c.

◆ SDL_imageFilterAddUint()

int SDL_imageFilterAddUint ( unsigned char * Src1,
unsigned char * Dest,
unsigned int length,
unsigned int bpp,
unsigned int C )

Filter using AddUint: D = saturation255((S[i] + Cs[i % BPP])

Parameters
Src1Pointer to the start of the source byte array (S).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source array.
bppThe bytes per unit length (BPP)
CConstant to add (C).
Returns
Returns 0 for success or -1 for error.

Definition at line 597 of file SDL3_imageFilter.c.

◆ SDL_imageFilterBinarizeUsingThreshold()

int SDL_imageFilterBinarizeUsingThreshold ( unsigned char * Src1,
unsigned char * Dest,
unsigned int length,
unsigned char T )

Filter using BinarizeUsingThreshold: D = (S >= T) ? 255:0.

Parameters
Src1Pointer to the start of the source byte array (S).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source array.
TThe threshold boundary (inclusive).
Returns
Returns 0 for success or -1 for error.

Definition at line 1169 of file SDL3_imageFilter.c.

◆ SDL_imageFilterBitAnd()

int SDL_imageFilterBitAnd ( unsigned char * Src1,
unsigned char * Src2,
unsigned char * Dest,
unsigned int length )

Filter using BitAnd: D = S1 & S2.

Parameters
Src1Pointer to the start of the first source byte array (S1).
Src2Pointer to the start of the second source byte array (S2).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source arrays.
Returns
Returns 0 for success or -1 for error.

Definition at line 390 of file SDL3_imageFilter.c.

◆ SDL_imageFilterBitNegation()

int SDL_imageFilterBitNegation ( unsigned char * Src1,
unsigned char * Dest,
unsigned int length )

Filter using BitNegation: D = !S.

Parameters
Src1Pointer to the start of the source byte array (S).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source array.
Returns
Returns 0 for success or -1 for error.

Definition at line 511 of file SDL3_imageFilter.c.

◆ SDL_imageFilterBitOr()

int SDL_imageFilterBitOr ( unsigned char * Src1,
unsigned char * Src2,
unsigned char * Dest,
unsigned int length )

Filter using BitOr: D = S1 | S2.

Parameters
Src1Pointer to the start of the first source byte array (S1).
Src2Pointer to the start of the second source byte array (S2).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source arrays.
Returns
Returns 0 for success or -1 for error.

Definition at line 429 of file SDL3_imageFilter.c.

◆ SDL_imageFilterClipToRange()

int SDL_imageFilterClipToRange ( unsigned char * Src1,
unsigned char * Dest,
unsigned int length,
unsigned char Tmin,
unsigned char Tmax )

Filter using ClipToRange: D = (S >= Tmin) & (S <= Tmax) S:Tmin | Tmax.

Parameters
Src1Pointer to the start of the source byte array (S).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source array.
TminLower (inclusive) boundary of the clipping range.
TmaxUpper (inclusive) boundary of the clipping range.
Returns
Returns 0 for success or -1 for error.

Definition at line 1214 of file SDL3_imageFilter.c.

◆ SDL_imageFilterConvolveKernel3x3Divide()

int SDL_imageFilterConvolveKernel3x3Divide ( unsigned char * Src,
unsigned char * Dest,
int rows,
int columns,
signed short * Kernel,
unsigned char Divisor )

Filter using ConvolveKernel3x3Divide: Dij = saturation0and255( ... )

Parameters
SrcThe source 2D byte array to convolve. Should be different from destination.
DestThe destination 2D byte array to store the result in. Should be different from source.
rowsNumber of rows in source/destination array. Must be >2.
columnsNumber of columns in source/destination array. Must be >2.
KernelThe 2D convolution kernel of size 3x3.
DivisorThe divisor of the convolution sum. Must be >0.

Note: No implementation available for this function yet.

Returns
Returns 1 if filter was applied, 0 otherwise.

Definition at line 1323 of file SDL3_imageFilter.c.

◆ SDL_imageFilterConvolveKernel3x3ShiftRight()

int SDL_imageFilterConvolveKernel3x3ShiftRight ( unsigned char * Src,
unsigned char * Dest,
int rows,
int columns,
signed short * Kernel,
unsigned char NRightShift )

Filter using ConvolveKernel3x3ShiftRight: Dij = saturation0and255( ... )

Parameters
SrcThe source 2D byte array to convolve. Should be different from destination.
DestThe destination 2D byte array to store the result in. Should be different from source.
rowsNumber of rows in source/destination array. Must be >2.
columnsNumber of columns in source/destination array. Must be >2.
KernelThe 2D convolution kernel of size 3x3.
NRightShiftThe number of right bit shifts to apply to the convolution sum. Must be <7.

Note: No implementation available for this function yet.

Returns
Returns 1 if filter was applied, 0 otherwise.

Definition at line 1435 of file SDL3_imageFilter.c.

◆ SDL_imageFilterConvolveKernel5x5Divide()

int SDL_imageFilterConvolveKernel5x5Divide ( unsigned char * Src,
unsigned char * Dest,
int rows,
int columns,
signed short * Kernel,
unsigned char Divisor )

Filter using ConvolveKernel5x5Divide: Dij = saturation0and255( ... )

Parameters
SrcThe source 2D byte array to convolve. Should be different from destination.
DestThe destination 2D byte array to store the result in. Should be different from source.
rowsNumber of rows in source/destination array. Must be >4.
columnsNumber of columns in source/destination array. Must be >4.
KernelThe 2D convolution kernel of size 5x5.
DivisorThe divisor of the convolution sum. Must be >0.

Note: No implementation available for this function yet.

Returns
Returns 1 if filter was applied, 0 otherwise.

Definition at line 1351 of file SDL3_imageFilter.c.

◆ SDL_imageFilterConvolveKernel5x5ShiftRight()

int SDL_imageFilterConvolveKernel5x5ShiftRight ( unsigned char * Src,
unsigned char * Dest,
int rows,
int columns,
signed short * Kernel,
unsigned char NRightShift )

Filter using ConvolveKernel5x5ShiftRight: Dij = saturation0and255( ... )

Parameters
SrcThe source 2D byte array to convolve. Should be different from destination.
DestThe destination 2D byte array to store the result in. Should be different from source.
rowsNumber of rows in source/destination array. Must be >4.
columnsNumber of columns in source/destination array. Must be >4.
KernelThe 2D convolution kernel of size 5x5.
NRightShiftThe number of right bit shifts to apply to the convolution sum. Must be <7.

Note: No implementation available for this function yet.

Returns
Returns 1 if filter was applied, 0 otherwise.

Definition at line 1463 of file SDL3_imageFilter.c.

◆ SDL_imageFilterConvolveKernel7x7Divide()

int SDL_imageFilterConvolveKernel7x7Divide ( unsigned char * Src,
unsigned char * Dest,
int rows,
int columns,
signed short * Kernel,
unsigned char Divisor )

Filter using ConvolveKernel7x7Divide: Dij = saturation0and255( ... )

Parameters
SrcThe source 2D byte array to convolve. Should be different from destination.
DestThe destination 2D byte array to store the result in. Should be different from source.
rowsNumber of rows in source/destination array. Must be >6.
columnsNumber of columns in source/destination array. Must be >6.
KernelThe 2D convolution kernel of size 7x7.
DivisorThe divisor of the convolution sum. Must be >0.

Note: No implementation available for this function yet.

Returns
Returns 1 if filter was applied, 0 otherwise.

Definition at line 1379 of file SDL3_imageFilter.c.

◆ SDL_imageFilterConvolveKernel7x7ShiftRight()

int SDL_imageFilterConvolveKernel7x7ShiftRight ( unsigned char * Src,
unsigned char * Dest,
int rows,
int columns,
signed short * Kernel,
unsigned char NRightShift )

Filter using ConvolveKernel7x7ShiftRight: Dij = saturation0and255( ... )

Parameters
SrcThe source 2D byte array to convolve. Should be different from destination.
DestThe destination 2D byte array to store the result in. Should be different from source.
rowsNumber of rows in source/destination array. Must be >6.
columnsNumber of columns in source/destination array. Must be >6.
KernelThe 2D convolution kernel of size 7x7.
NRightShiftThe number of right bit shifts to apply to the convolution sum. Must be <7.

Note: No implementation available for this function yet.

Returns
Returns 1 if filter was applied, 0 otherwise.

Definition at line 1491 of file SDL3_imageFilter.c.

◆ SDL_imageFilterConvolveKernel9x9Divide()

int SDL_imageFilterConvolveKernel9x9Divide ( unsigned char * Src,
unsigned char * Dest,
int rows,
int columns,
signed short * Kernel,
unsigned char Divisor )

Filter using ConvolveKernel9x9Divide: Dij = saturation0and255( ... )

Parameters
SrcThe source 2D byte array to convolve. Should be different from destination.
DestThe destination 2D byte array to store the result in. Should be different from source.
rowsNumber of rows in source/destination array. Must be >8.
columnsNumber of columns in source/destination array. Must be >8.
KernelThe 2D convolution kernel of size 9x9.
DivisorThe divisor of the convolution sum. Must be >0.

Note: No implementation available for this function yet.

Returns
Returns 1 if filter was applied, 0 otherwise.

Definition at line 1407 of file SDL3_imageFilter.c.

◆ SDL_imageFilterConvolveKernel9x9ShiftRight()

int SDL_imageFilterConvolveKernel9x9ShiftRight ( unsigned char * Src,
unsigned char * Dest,
int rows,
int columns,
signed short * Kernel,
unsigned char NRightShift )

Filter using ConvolveKernel9x9ShiftRight: Dij = saturation255( ... )

Parameters
SrcThe source 2D byte array to convolve. Should be different from destination.
DestThe destination 2D byte array to store the result in. Should be different from source.
rowsNumber of rows in source/destination array. Must be >8.
columnsNumber of columns in source/destination array. Must be >8.
KernelThe 2D convolution kernel of size 9x9.
NRightShiftThe number of right bit shifts to apply to the convolution sum. Must be <7.

Note: No implementation available for this function yet.

Returns
Returns 1 if filter was applied, 0 otherwise.

Definition at line 1519 of file SDL3_imageFilter.c.

◆ SDL_imageFilterDiv()

int SDL_imageFilterDiv ( unsigned char * Src1,
unsigned char * Src2,
unsigned char * Dest,
unsigned int length )

Filter using Div: D = S1 / S2.

Parameters
Src1Pointer to the start of the first source byte array (S1).
Src2Pointer to the start of the second source byte array (S2).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source arrays.
Returns
Returns 0 for success or -1 for error.

Definition at line 468 of file SDL3_imageFilter.c.

◆ SDL_imageFilterMean()

int SDL_imageFilterMean ( unsigned char * Src1,
unsigned char * Src2,
unsigned char * Dest,
unsigned int length )

Filter using Mean: D = S1/2 + S2/2.

Parameters
Src1Pointer to the start of the first source byte array (S1).
Src2Pointer to the start of the second source byte array (S2).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source arrays.
Returns
Returns 0 for success or -1 for error.

Definition at line 101 of file SDL3_imageFilter.c.

◆ SDL_imageFilterMult()

int SDL_imageFilterMult ( unsigned char * Src1,
unsigned char * Src2,
unsigned char * Dest,
unsigned int length )

Filter using Mult: D = saturation255(S1 * S2)

Parameters
Src1Pointer to the start of the first source byte array (S1).
Src2Pointer to the start of the second source byte array (S2).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source arrays.
Returns
Returns 0 for success or -1 for error.

Definition at line 222 of file SDL3_imageFilter.c.

◆ SDL_imageFilterMultByByte()

int SDL_imageFilterMultByByte ( unsigned char * Src1,
unsigned char * Dest,
unsigned int length,
unsigned char C )

Filter using MultByByte: D = saturation255(S * C)

Parameters
Src1Pointer to the start of the source byte array (S).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source arrays.
CConstant to multiply with (C).
Returns
Returns 0 for success or -1 for error.

Definition at line 907 of file SDL3_imageFilter.c.

◆ SDL_imageFilterMultDivby2()

int SDL_imageFilterMultDivby2 ( unsigned char * Src1,
unsigned char * Src2,
unsigned char * Dest,
unsigned int length )

Filter using MultDivby2: D = saturation255(S1/2 * S2)

Parameters
Src1Pointer to the start of the first source byte array (S1).
Src2Pointer to the start of the second source byte array (S2).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source arrays.
Returns
Returns 0 for success or -1 for error.

Definition at line 304 of file SDL3_imageFilter.c.

◆ SDL_imageFilterMultDivby4()

int SDL_imageFilterMultDivby4 ( unsigned char * Src1,
unsigned char * Src2,
unsigned char * Dest,
unsigned int length )

Filter using MultDivby4: D = saturation255(S1/2 * S2/2)

Parameters
Src1Pointer to the start of the first source byte array (S1).
Src2Pointer to the start of the second source byte array (S2).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source arrays.
Returns
Returns 0 for success or -1 for error.

Definition at line 347 of file SDL3_imageFilter.c.

◆ SDL_imageFilterMultNor()

int SDL_imageFilterMultNor ( unsigned char * Src1,
unsigned char * Src2,
unsigned char * Dest,
unsigned int length )

Filter using MultNor: D = S1 * S2.

Parameters
Src1Pointer to the start of the first source byte array (S1).
Src2Pointer to the start of the second source byte array (S2).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source arrays.
Returns
Returns 0 for success or -1 for error.

Definition at line 265 of file SDL3_imageFilter.c.

◆ SDL_imageFilterNormalizeLinear()

int SDL_imageFilterNormalizeLinear ( unsigned char * Src,
unsigned char * Dest,
unsigned int length,
int Cmin,
int Cmax,
int Nmin,
int Nmax )

Filter using NormalizeLinear: D = saturation255((Nmax - Nmin)/(Cmax - Cmin)*(S - Cmin) + Nmin)

Parameters
SrcPointer to the start of the source byte array (S).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source array.
CminNormalization constant.
CmaxNormalization constant.
NminNormalization constant.
NmaxNormalization constant.
Returns
Returns 0 for success or -1 for error.

Definition at line 1268 of file SDL3_imageFilter.c.

◆ SDL_imageFilterShiftLeft()

int SDL_imageFilterShiftLeft ( unsigned char * Src1,
unsigned char * Dest,
unsigned int length,
unsigned char N )

Filter ShiftLeft: D = saturation255(S << N)

Parameters
Src1Pointer to the start of the source byte array (S1).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source array.
NNumber of bit-positions to shift (N). Valid range is 0 to 8.
Returns
Returns 0 for success or -1 for error.

Definition at line 1118 of file SDL3_imageFilter.c.

◆ SDL_imageFilterShiftLeftByte()

int SDL_imageFilterShiftLeftByte ( unsigned char * Src1,
unsigned char * Dest,
unsigned int length,
unsigned char N )

Filter using ShiftLeftByte: D = (S << N)

Parameters
Src1Pointer to the start of the source byte array (S).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source arrays.
NNumber of bit-positions to shift (N). Valid range is 0 to 8.
Returns
Returns 0 for success or -1 for error.

Definition at line 1014 of file SDL3_imageFilter.c.

◆ SDL_imageFilterShiftLeftUint()

int SDL_imageFilterShiftLeftUint ( unsigned char * Src1,
unsigned char * Dest,
unsigned int length,
unsigned char N )

Filter using ShiftLeftUint: D = ((uint)S << N)

Parameters
Src1Pointer to the start of the source byte array (S).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source array.
NNumber of bit-positions to shift (N). Valid range is 0 to 32.
Returns
Returns 0 for success or -1 for error.

Definition at line 1064 of file SDL3_imageFilter.c.

◆ SDL_imageFilterShiftRight()

int SDL_imageFilterShiftRight ( unsigned char * Src1,
unsigned char * Dest,
unsigned int length,
unsigned char N )

Filter using ShiftRight: D = saturation0(S >> N)

Parameters
Src1Pointer to the start of the source byte array (S).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source array.
NNumber of bit-positions to shift (N). Valid range is 0 to 8.
Returns
Returns 0 for success or -1 for error.

Definition at line 803 of file SDL3_imageFilter.c.

◆ SDL_imageFilterShiftRightAndMultByByte()

int SDL_imageFilterShiftRightAndMultByByte ( unsigned char * Src1,
unsigned char * Dest,
unsigned int length,
unsigned char N,
unsigned char C )

Filter using ShiftRightAndMultByByte: D = saturation255((S >> N) * C)

Parameters
Src1Pointer to the start of the source byte array (S).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source array.
NNumber of bit-positions to shift (N). Valid range is 0 to 8.
CConstant to multiply with (C).
Returns
Returns 0 for success or -1 for error.

Definition at line 958 of file SDL3_imageFilter.c.

◆ SDL_imageFilterShiftRightUint()

int SDL_imageFilterShiftRightUint ( unsigned char * Src1,
unsigned char * Dest,
unsigned int length,
unsigned char N )

Filter using ShiftRightUint: D = saturation0((uint)S[i] >> N)

Parameters
Src1Pointer to the start of the source byte array (S1).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source array.
NNumber of bit-positions to shift (N). Valid range is 0 to 32.
Returns
Returns 0 for success or -1 for error.

Definition at line 853 of file SDL3_imageFilter.c.

◆ SDL_imageFilterSobelX()

int SDL_imageFilterSobelX ( unsigned char * Src,
unsigned char * Dest,
int rows,
int columns )

Filter using SobelX: Dij = saturation255( ... )

Parameters
SrcThe source 2D byte array to sobel-filter. Should be different from destination.
DestThe destination 2D byte array to store the result in. Should be different from source.
rowsNumber of rows in source/destination array. Must be >2.
columnsNumber of columns in source/destination array. Must be >7.

Note: No implementation available for this function yet.

Returns
Returns 1 if filter was applied, 0 otherwise.

Definition at line 1547 of file SDL3_imageFilter.c.

◆ SDL_imageFilterSobelXShiftRight()

int SDL_imageFilterSobelXShiftRight ( unsigned char * Src,
unsigned char * Dest,
int rows,
int columns,
unsigned char NRightShift )

Filter using SobelXShiftRight: Dij = saturation255( ... )

Parameters
SrcThe source 2D byte array to sobel-filter. Should be different from destination.
DestThe destination 2D byte array to store the result in. Should be different from source.
rowsNumber of rows in source/destination array. Must be >2.
columnsNumber of columns in source/destination array. Must be >8.
NRightShiftThe number of right bit shifts to apply to the filter sum. Must be <7.

Note: No implementation available for this function yet.

Returns
Returns 1 if filter was applied, 0 otherwise.

Definition at line 1573 of file SDL3_imageFilter.c.

◆ SDL_imageFilterSub()

int SDL_imageFilterSub ( unsigned char * Src1,
unsigned char * Src2,
unsigned char * Dest,
unsigned int length )

Filter using Sub: D = saturation0(S1 - S2)

Parameters
Src1Pointer to the start of the first source byte array (S1).
Src2Pointer to the start of the second source byte array (S2).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source arrays.
Returns
Returns 0 for success or -1 for error.

Definition at line 143 of file SDL3_imageFilter.c.

◆ SDL_imageFilterSubByte()

int SDL_imageFilterSubByte ( unsigned char * Src1,
unsigned char * Dest,
unsigned int length,
unsigned char C )

Filter using SubByte: D = saturation0(S - C)

Parameters
Src1Pointer to the start of the source byte array (S).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source arrays.
CConstant to subtract (C).
Returns
Returns 0 for success or -1 for error.

Definition at line 697 of file SDL3_imageFilter.c.

◆ SDL_imageFilterSubUint()

int SDL_imageFilterSubUint ( unsigned char * Src1,
unsigned char * Dest,
unsigned int length,
unsigned int bpp,
unsigned int C )

Filter using SubUint: D = saturation0(S[i] - Cs[i % BPP])

Parameters
Src1Pointer to the start of the source byte array (S1).
DestPointer to the start of the destination byte array (D).
lengthThe number of bytes in the source array.
bppThe bytes per unit length (BPP)
CConstant to subtract (C).
Returns
Returns 0 for success or -1 for error.

Definition at line 747 of file SDL3_imageFilter.c.