This commit is contained in:
visionmercer 2022-03-18 18:33:58 +01:00
commit 0741413c93
11 changed files with 144 additions and 0 deletions

2
bool.bi Normal file
View file

@ -0,0 +1,2 @@
Const False = 0
Const True = Not False

8
consolecolor.bm Normal file
View file

@ -0,0 +1,8 @@
Sub ConsoleColor (Colour As _Unsigned Long)
Select Case Colour
Case 0 TO 255
Print Chr$(27) + "[38;5;" + _Trim$(Str$(Colour)) + "m";
Case Is > 255
Print Chr$(27) + "[38;2;" + _Trim$(Str$(_Red32(Colour))) + ";" + _Trim$(Str$(_Green32(Colour))) + ";" + _Trim$(Str$(_Blue32(Colour))) + "m";
End Select
End Sub

19
grayscale.bm Normal file
View file

@ -0,0 +1,19 @@
Sub grayscale (image As Long)
Dim mimg As _MEM
Dim As _Offset start, length
Dim As _Unsigned _Byte inputRed, inputGreen, inputBlue, nc
mimg = _MemImage(image)
start = mimg.OFFSET
length = start + _Width(image) * _Height(image) * 4
Do
inputBlue = _MemGet(mimg, start, _Unsigned _Byte)
inputGreen = _MemGet(mimg, start + 1, _Unsigned _Byte)
inputRed = _MemGet(mimg, start + 2, _Unsigned _Byte)
nc = (inputRed * 0.21) + (inputGreen * 0.72) + (inputBlue * 0.07)
_MemPut mimg, start, nc As _Unsigned _Byte
_MemPut mimg, start + 1, nc As _Unsigned _Byte
_MemPut mimg, start + 2, nc As _Unsigned _Byte
start = start + 4
Loop Until start = length
_MemFree mimg
End Sub

3
lerp.bm Normal file
View file

@ -0,0 +1,3 @@
Function Lerp (v0, v1, t)
Lerp = (1 - t) * v0 + t * v1
End Function

25
loadhexpalette.bm Normal file
View file

@ -0,0 +1,25 @@
SUB LoadHexPalette (Filename$, palettearray() AS _UNSIGNED LONG)
DIM i AS INTEGER
DIM ff AS INTEGER
DIM r AS _UNSIGNED _BYTE
DIM g AS _UNSIGNED _BYTE
DIM b AS _UNSIGNED _BYTE
DIM Colorload AS STRING
i = LBOUND(palettearray) - 1
ff = FREEFILE
IF _FILEEXISTS(Filename$) THEN
OPEN Filename$ FOR INPUT AS ff
DO UNTIL EOF(ff)
LINE INPUT #ff, Colorload
r = VAL("&H" + MID$(Colorload, 1, 2))
g = VAL("&H" + MID$(Colorload, 3, 2))
b = VAL("&H" + MID$(Colorload, 5, 2))
i = i + 1
IF i > UBOUND(palettearray) THEN
REDIM _PRESERVE palettearray(i) AS _UNSIGNED LONG
END IF
palettearray(i) = _RGB32(r, g, b)
LOOP
CLOSE ff
END IF
END SUB

3
max.bm Normal file
View file

@ -0,0 +1,3 @@
FUNCTION Max (num1, num2)
Max = ((num1 > num2) * -num1) + ((num2 >= num1) * -num2)
END FUNCTION

3
min.bm Normal file
View file

@ -0,0 +1,3 @@
FUNCTION Min (num1, num2)
Min = ((num1 < num2) * -num1) + ((num2 <= num1) * -num2)
END FUNCTION

25
negative.bm Normal file
View file

@ -0,0 +1,25 @@
Sub negative (__image As Long)
Dim __dest As Long
Dim __source 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
__dest = _Dest
__source = _Source
_Dest __image
_Source __image
For __y = 0 To _Height(__image) - 1
For __x = 0 To _Width(__image) - 1
__orgc = Point(__x, __y)
__r = 255 - _Red(__orgc)
__g = 255 - _Green(__orgc)
__b = 255 - _Blue(__orgc)
PSet (__x, __y), _RGB32(__r, __g, __b)
Next
Next
_Dest __dest
_Source __source
End Sub

28
noframe.bi Normal file
View file

@ -0,0 +1,28 @@
Declare CustomType Library
Function FindWindow& (ByVal ClassName As _Offset, WindowName$)
End Declare
Declare Dynamic Library "User32"
Function GetWindowLongA& (ByVal hWnd As _Offset, Byval nIndex As Long)
Function SetWindowLongA& (ByVal hWnd As _Offset, Byval nIndex As Long, Byval dwNewLong As Long)
Function SetWindowPos& (ByVal hWnd As _Offset, Byval hWndInsertAfter As Long, Byval x As Long, Byval y As Long, Byval cx As Long, Byval cy As Long, Byval wFlags As Long)
End Declare
Const GWL_STYLE = -16
Const WS_BORDER = &H800000
Const WS_CAPTION = &H00C00000
Const WS_THICKFRAME = &H00040000
Const WS_MINIMIZEBOX = &H00020000
Const WS_MAXIMIZEBOX = &H00010000
Const WS_SYSMENU = &H00080000
Do: Loop Until _ScreenExists
Dim hwnd As _Offset
Dim As Long winstyle, Style, a
hwnd = _WindowHandle
winstyle = GetWindowLongA(hwnd, GWL_STYLE)
Style = (WS_CAPTION Or WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX Or WS_SYSMENU)
a = SetWindowLongA&(hwnd, GWL_STYLE, winstyle And Not Style)

25
solarize.bm Normal file
View file

@ -0,0 +1,25 @@
Sub Solarize (__image As Long, __threshold)
Dim __Dest As Long
Dim __Source 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
__Dest = _Dest
__Source = _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 __Dest
_Source __Source
End Sub

3
truncate.bm Normal file
View file

@ -0,0 +1,3 @@
FUNCTION Truncate (value)
Truncate = (value > 0) * (((value < 256) * value) + ((value > 255) * 255))
END FUNCTION