qb64-include/solarize.bm
2022-05-20 23:24:48 +02:00

25 lines
776 B
Text

Sub Solarize (image As Long, threshold)
Dim oldDest As Long
Dim oldSource As Long
Dim y As Long
Dim x As Long
Dim orgc As _Unsigned Long
Dim r As Integer
Dim g As Integer
Dim b As Integer
oldDest = _Dest
oldSource = _Source
_Dest image
_Source image
For y = 0 To _Height(image) - 1
For x = 0 To _Width(image) - 1
orgc = Point(x, y)
If _Red(orgc) > threshold Then r = 255 - _Red(orgc) Else r = _Red(orgc)
If _Green(orgc) > threshold Then g = 255 - _Green(orgc) Else g = _Green(orgc)
If _Blue(orgc) > threshold Then b = 255 - _Blue(orgc) Else b = _Blue(orgc)
PSet (x, y), _RGB32(r, g, b)
Next
Next
_Dest oldDest
_Source oldSource
End Sub