@@ -42,13 +42,43 @@ CONST GJ_IMGADJ_PIXELSCALER_HQ2XB = 5
4242CONST GJ_IMGADJ_PIXELSCALER_HQ3XA = 6
4343CONST GJ_IMGADJ_PIXELSCALER_HQ3XB = 7
4444
45+ ' Dithering Algorithm Constants
46+ CONST GJ_IMGADJ_DITHER_ORDERED_2X2 = 0
47+ CONST GJ_IMGADJ_DITHER_ORDERED_4X4 = 1
48+ CONST GJ_IMGADJ_DITHER_ORDERED_8X8 = 2
49+ CONST GJ_IMGADJ_DITHER_ORDERED_16X16 = 3
50+ CONST GJ_IMGADJ_DITHER_FLOYD_STEINBERG = 4
51+ CONST GJ_IMGADJ_DITHER_JARVIS_JUDICE_NINKE = 5
52+ CONST GJ_IMGADJ_DITHER_STUCKI = 6
53+ CONST GJ_IMGADJ_DITHER_BURKES = 7
54+ CONST GJ_IMGADJ_DITHER_SIERRA = 8
55+ CONST GJ_IMGADJ_DITHER_SIERRA_LITE = 9
56+ CONST GJ_IMGADJ_DITHER_ATKINSON = 10
57+ CONST GJ_IMGADJ_DITHER_FALSE_FLOYD_STEINBERG = 11
58+ CONST GJ_IMGADJ_DITHER_FAN = 12
59+ CONST GJ_IMGADJ_DITHER_STEVENSON_ARCE = 13
60+ CONST GJ_IMGADJ_DITHER_TWO_ROW_SIERRA = 14
61+ CONST GJ_IMGADJ_DITHER_SHIAU_FAN = 15
62+ CONST GJ_IMGADJ_DITHER_RANDOM = 16
63+ CONST GJ_IMGADJ_DITHER_BLUE_NOISE = 17
64+ CONST GJ_IMGADJ_DITHER_CLUSTERED_DOT = 18
65+ CONST GJ_IMGADJ_DITHER_HALFTONE = 19
66+ CONST GJ_IMGADJ_DITHER_SPIRAL = 20
67+ CONST GJ_IMGADJ_DITHER_INTERLEAVED_GRADIENT = 21
68+
4569' '
4670' SHARED STATE FOR OPTIMIZATIONS
4771'
4872
4973DIM SHARED GJ_IMGADJ_noise (0 TO 65535 ) AS INTEGER
5074DIM SHARED GJ_IMGADJ_noiseInit AS INTEGER
5175
76+ ' Dithering cache for palette color lookups
77+ DIM SHARED GJ_IMGADJ_dither_cache_r (0 TO 255 ) AS INTEGER
78+ DIM SHARED GJ_IMGADJ_dither_cache_g (0 TO 255 ) AS INTEGER
79+ DIM SHARED GJ_IMGADJ_dither_cache_b (0 TO 255 ) AS INTEGER
80+ DIM SHARED GJ_IMGADJ_dither_cache_valid AS INTEGER
81+
5282' --- Function Declarations ---
5383DECLARE SUB GJ_IMGADJ_Init
5484DECLARE SUB GJ_IMGADJ_RGBtoHSV (r AS INTEGER , g AS INTEGER , b AS INTEGER , hue AS SINGLE , sat AS SINGLE , value AS SINGLE )
@@ -79,3 +109,27 @@ DECLARE FUNCTION GJ_IMGADJ_ColorBalance (sourceImg AS LONG, redShift AS INTEGER,
79109DECLARE FUNCTION GJ_IMGADJ_Colorize (sourceImg AS LONG , hue AS INTEGER , saturation AS SINGLE ) AS LONG
80110DECLARE FUNCTION GJ_IMGADJ_Pixelate (sourceImg AS LONG , pixelSize AS INTEGER ) AS LONG
81111DECLARE FUNCTION GJ_IMGADJ_PixelScaler (sourceImg AS LONG , scalerType AS INTEGER ) AS LONG
112+
113+ ' --- Dithering Functions ---
114+ DECLARE FUNCTION GJ_IMGADJ_DitherOrdered2x2 (sourceImg AS LONG , amount AS SINGLE ) AS LONG
115+ DECLARE FUNCTION GJ_IMGADJ_DitherOrdered4x4 (sourceImg AS LONG , amount AS SINGLE ) AS LONG
116+ DECLARE FUNCTION GJ_IMGADJ_DitherOrdered8x8 (sourceImg AS LONG , amount AS SINGLE ) AS LONG
117+ DECLARE FUNCTION GJ_IMGADJ_DitherOrdered16x16 (sourceImg AS LONG , amount AS SINGLE ) AS LONG
118+ DECLARE FUNCTION GJ_IMGADJ_DitherFloydSteinberg (sourceImg AS LONG , amount AS SINGLE ) AS LONG
119+ DECLARE FUNCTION GJ_IMGADJ_DitherJarvisJudiceNinke (sourceImg AS LONG , amount AS SINGLE ) AS LONG
120+ DECLARE FUNCTION GJ_IMGADJ_DitherStucki (sourceImg AS LONG , amount AS SINGLE ) AS LONG
121+ DECLARE FUNCTION GJ_IMGADJ_DitherBurkes (sourceImg AS LONG , amount AS SINGLE ) AS LONG
122+ DECLARE FUNCTION GJ_IMGADJ_DitherSierra (sourceImg AS LONG , amount AS SINGLE ) AS LONG
123+ DECLARE FUNCTION GJ_IMGADJ_DitherSierraLite (sourceImg AS LONG , amount AS SINGLE ) AS LONG
124+ DECLARE FUNCTION GJ_IMGADJ_DitherAtkinson (sourceImg AS LONG , amount AS SINGLE ) AS LONG
125+ DECLARE FUNCTION GJ_IMGADJ_DitherFalseFloydSteinberg (sourceImg AS LONG , amount AS SINGLE ) AS LONG
126+ DECLARE FUNCTION GJ_IMGADJ_DitherFan (sourceImg AS LONG , amount AS SINGLE ) AS LONG
127+ DECLARE FUNCTION GJ_IMGADJ_DitherStevensonArce (sourceImg AS LONG , amount AS SINGLE ) AS LONG
128+ DECLARE FUNCTION GJ_IMGADJ_DitherTwoRowSierra (sourceImg AS LONG , amount AS SINGLE ) AS LONG
129+ DECLARE FUNCTION GJ_IMGADJ_DitherShiauFan (sourceImg AS LONG , amount AS SINGLE ) AS LONG
130+ DECLARE FUNCTION GJ_IMGADJ_DitherRandom (sourceImg AS LONG , amount AS SINGLE ) AS LONG
131+ DECLARE FUNCTION GJ_IMGADJ_DitherBlueNoise (sourceImg AS LONG , amount AS SINGLE ) AS LONG
132+ DECLARE FUNCTION GJ_IMGADJ_DitherClusteredDot (sourceImg AS LONG , amount AS SINGLE ) AS LONG
133+ DECLARE FUNCTION GJ_IMGADJ_DitherHalftone (sourceImg AS LONG , amount AS SINGLE ) AS LONG
134+ DECLARE FUNCTION GJ_IMGADJ_DitherSpiral (sourceImg AS LONG , amount AS SINGLE ) AS LONG
135+ DECLARE FUNCTION GJ_IMGADJ_DitherInterleavedGradientNoise (sourceImg AS LONG , amount AS SINGLE ) AS LONG
0 commit comments