Skip to content

Commit 27837b6

Browse files
committed
Handle invalid source image in adjustment functions by returning 0 instead of terminating execution
1 parent 7722260 commit 27837b6

File tree

1 file changed

+36
-18
lines changed

1 file changed

+36
-18
lines changed

IMGADJ/IMGADJ.BM

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,8 @@ END SUB
130130
FUNCTION GJ_IMGADJ_Brightness (sourceImg AS LONG, direction AS STRING, amount AS INTEGER)
131131
IF sourceImg = 0 THEN
132132
PRINT "GJ_IMGADJ_Brightness: Invalid source image handle"
133-
SYSTEM
133+
GJ_IMGADJ_Brightness = 0
134+
EXIT FUNCTION
134135
END IF
135136

136137
DIM resultImg
@@ -189,7 +190,8 @@ END FUNCTION
189190
FUNCTION GJ_IMGADJ_Contrast (sourceImg AS LONG, direction AS STRING, amount AS INTEGER)
190191
IF sourceImg = 0 THEN
191192
PRINT "GJ_IMGADJ_Contrast: Invalid source image handle"
192-
SYSTEM
193+
GJ_IMGADJ_Contrast = 0
194+
EXIT FUNCTION
193195
END IF
194196

195197
DIM resultImg
@@ -251,7 +253,8 @@ END FUNCTION
251253
FUNCTION GJ_IMGADJ_Gamma (sourceImg AS LONG, direction AS STRING, amount AS INTEGER)
252254
IF sourceImg = 0 THEN
253255
PRINT "GJ_IMGADJ_Gamma: Invalid source image handle"
254-
SYSTEM
256+
GJ_IMGADJ_Gamma = 0
257+
EXIT FUNCTION
255258
END IF
256259

257260
DIM resultImg
@@ -320,7 +323,8 @@ END FUNCTION
320323
FUNCTION GJ_IMGADJ_Saturation (sourceImg AS LONG, direction AS STRING, amount AS INTEGER)
321324
IF sourceImg = 0 THEN
322325
PRINT "GJ_IMGADJ_Saturation: Invalid source image handle"
323-
SYSTEM
326+
GJ_IMGADJ_Saturation = 0
327+
EXIT FUNCTION
324328
END IF
325329

326330
DIM resultImg
@@ -383,7 +387,8 @@ END FUNCTION
383387
FUNCTION GJ_IMGADJ_Hue (sourceImg AS LONG, direction AS STRING, amount AS INTEGER)
384388
IF sourceImg = 0 THEN
385389
PRINT "GJ_IMGADJ_Hue: Invalid source image handle"
386-
SYSTEM
390+
GJ_IMGADJ_Hue = 0
391+
EXIT FUNCTION
387392
END IF
388393

389394
DIM resultImg
@@ -447,7 +452,8 @@ END FUNCTION
447452
FUNCTION GJ_IMGADJ_Blur (sourceImg AS LONG, radius AS INTEGER)
448453
IF sourceImg = 0 THEN
449454
PRINT "GJ_IMGADJ_Blur: Invalid source image handle"
450-
SYSTEM
455+
GJ_IMGADJ_Blur = 0
456+
EXIT FUNCTION
451457
END IF
452458

453459
DIM resultImg
@@ -526,7 +532,8 @@ END FUNCTION
526532
FUNCTION GJ_IMGADJ_Glow (sourceImg AS LONG, radius AS INTEGER, intensity AS INTEGER)
527533
IF sourceImg = 0 THEN
528534
PRINT "GJ_IMGADJ_Glow: Invalid source image handle"
529-
SYSTEM
535+
GJ_IMGADJ_Glow = 0
536+
EXIT FUNCTION
530537
END IF
531538

532539
DIM resultImg
@@ -603,7 +610,8 @@ END FUNCTION
603610
FUNCTION GJ_IMGADJ_FilmGrain (sourceImg AS LONG, amount AS INTEGER)
604611
IF sourceImg = 0 THEN
605612
PRINT "GJ_IMGADJ_FilmGrain: Invalid source image handle"
606-
SYSTEM
613+
GJ_IMGADJ_FilmGrain = 0
614+
EXIT FUNCTION
607615
END IF
608616

609617
DIM resultImg
@@ -675,7 +683,8 @@ END FUNCTION
675683
FUNCTION GJ_IMGADJ_Vignette (sourceImg AS LONG, strength AS SINGLE)
676684
IF sourceImg = 0 THEN
677685
PRINT "GJ_IMGADJ_Vignette: Invalid source image handle"
678-
SYSTEM
686+
GJ_IMGADJ_Vignette = 0
687+
EXIT FUNCTION
679688
END IF
680689

681690
DIM resultImg
@@ -751,7 +760,8 @@ END FUNCTION
751760
FUNCTION GJ_IMGADJ_Posterize (sourceImg AS LONG, levels AS INTEGER)
752761
IF sourceImg = 0 THEN
753762
PRINT "GJ_IMGADJ_Posterize: Invalid source image handle"
754-
SYSTEM
763+
GJ_IMGADJ_Posterize = 0
764+
EXIT FUNCTION
755765
END IF
756766

757767
' Clamp levels to valid range
@@ -815,7 +825,8 @@ END FUNCTION
815825
FUNCTION GJ_IMGADJ_Sepia (sourceImg AS LONG)
816826
IF sourceImg = 0 THEN
817827
PRINT "GJ_IMGADJ_Sepia: Invalid source image handle"
818-
SYSTEM
828+
GJ_IMGADJ_Sepia = 0
829+
EXIT FUNCTION
819830
END IF
820831

821832
DIM resultImg AS LONG
@@ -866,7 +877,8 @@ END FUNCTION
866877
FUNCTION GJ_IMGADJ_Invert (sourceImg AS LONG)
867878
IF sourceImg = 0 THEN
868879
PRINT "GJ_IMGADJ_Invert: Invalid source image handle"
869-
SYSTEM
880+
GJ_IMGADJ_Invert = 0
881+
EXIT FUNCTION
870882
END IF
871883

872884
DIM resultImg
@@ -913,7 +925,8 @@ END FUNCTION
913925
FUNCTION GJ_IMGADJ_Threshold (sourceImg AS LONG, threshold AS INTEGER, mode AS INTEGER)
914926
IF sourceImg = 0 THEN
915927
PRINT "GJ_IMGADJ_Threshold: Invalid source image handle"
916-
SYSTEM
928+
GJ_IMGADJ_Threshold = 0
929+
EXIT FUNCTION
917930
END IF
918931

919932
DIM resultImg
@@ -969,7 +982,8 @@ END FUNCTION
969982
FUNCTION GJ_IMGADJ_Desaturate (sourceImg AS LONG, method AS INTEGER)
970983
IF sourceImg = 0 THEN
971984
PRINT "GJ_IMGADJ_Desaturate: Invalid source image handle"
972-
SYSTEM
985+
GJ_IMGADJ_Desaturate = 0
986+
EXIT FUNCTION
973987
END IF
974988

975989
DIM resultImg
@@ -1025,7 +1039,8 @@ END FUNCTION
10251039
FUNCTION GJ_IMGADJ_Levels (sourceImg AS LONG, inputMin AS INTEGER, inputMax AS INTEGER, outputMin AS INTEGER, outputMax AS INTEGER)
10261040
IF sourceImg = 0 THEN
10271041
PRINT "GJ_IMGADJ_Levels: Invalid source image handle"
1028-
SYSTEM
1042+
GJ_IMGADJ_Levels = 0
1043+
EXIT FUNCTION
10291044
END IF
10301045

10311046
DIM resultImg
@@ -1097,7 +1112,8 @@ END FUNCTION
10971112
FUNCTION GJ_IMGADJ_ColorBalance (sourceImg AS LONG, redShift AS INTEGER, greenShift AS INTEGER, blueShift AS INTEGER)
10981113
IF sourceImg = 0 THEN
10991114
PRINT "GJ_IMGADJ_ColorBalance: Invalid source image handle"
1100-
SYSTEM
1115+
GJ_IMGADJ_ColorBalance = 0
1116+
EXIT FUNCTION
11011117
END IF
11021118

11031119
DIM resultImg
@@ -1161,15 +1177,17 @@ FUNCTION GJ_IMGADJ_LoadTestImage (imageType AS STRING)
11611177
IF NOT _FILEEXISTS(filename) THEN
11621178
PRINT "GJ_IMGADJ_LoadTestImage: Test image file '" + filename + "' not found"
11631179
PRINT "Please ensure test images are in the current directory."
1164-
SYSTEM
1180+
GJ_IMGADJ_LoadTestImage = 0
1181+
EXIT FUNCTION
11651182
END IF
11661183

11671184
DIM img
11681185
img = _LOADIMAGE(filename, 32)
11691186

11701187
IF img = -1 THEN
11711188
PRINT "GJ_IMGADJ_LoadTestImage: Failed to load '" + filename + "'"
1172-
SYSTEM
1189+
GJ_IMGADJ_LoadTestImage = 0
1190+
EXIT FUNCTION
11731191
END IF
11741192

11751193
GJ_IMGADJ_LoadTestImage = img

0 commit comments

Comments
 (0)