Code archives/Graphics/Mask Maker
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| This simple Utility can be used to mask a background (currently using $0=black as Mask Color). Example: a blue sky with some clouds could be masked black while the leaf of a tree in the foreground would remain unmasked. The App works with 4 Scrollbars: Red, Green, Blue and Tolerance. | |||||
Graphics 800,600,16,2
SetBuffer BackBuffer()
a$="ast1.bmp"
a2$="ast1b.bmp"
TFormFilter 0
Global img=LoadImage(a$)
Global imgbk=CopyImage(img)
DrawBlock img,0,0
rgb=ReadPixel(i,j)
r=(rgb Shr 16) And 255
g=(rgb Shr 8 ) And 255
b=rgb And 255
t=100
ClsColor 200,100,0
While KeyDown(1)=0
If MouseDown(1)
If dodo=0
mx=MouseX()
dodo=1
EndIf
my=MouseY()
If my>=100 And my<=366
myp=min(255,my-100)
If mx>=0 And mx<10
r=myp
EndIf
If mx>=10 And mx<20
g=myp
EndIf
If mx>=20 And mx<30
b=myp
EndIf
If mx>=30 And mx<40
t=myp
EndIf
EndIf
mask(r,g,b,t)
Else
dodo=0
EndIf
Cls
DrawImage img,100,0
sliders(r,g,b,t)
Flip
Wend
SaveBuffer(ImageBuffer(img),a2$)
End
;-----------------------------------------------------------------------------------------
Function mask(sr,sg,sb,st)
CopyRect 0,0,512,512,0,0,ImageBuffer(imgbk),ImageBuffer(img)
SetBuffer ImageBuffer(img)
LockBuffer
For j=0 To ImageHeight(img)-1
For i=0 To ImageWidth(img)-1
rgb=ReadPixelFast(i,j)
r=(rgb Shr 16) And 255
g=(rgb Shr 8 ) And 255
b=rgb And 255
If (r>sr-st And r<sr+st) And (g>sg-st And g<sg+st) And (b>sb-st And b<sb+st) Then
WritePixelFast i,j,0 ; maskiert
Else
WritePixelFast i,j,rgb ; nicht maskiert
EndIf
Next
Next
UnlockBuffer
SetBuffer BackBuffer()
End Function
Function min(zahl,min)
If zahl> min Then
Return min
Else
Return zahl
EndIf
End Function
Function max(zahl,max)
If zahl< max Then
Return max
Else
Return zahl
EndIf
End Function
Function sliders(r,g,b,t)
Color 255,0,0
Rect 0,100,9,266,0
Rect 0,100+r,9,9,1
Text 0,0,"Red "+r
Color 0,255,0
Rect 10,100,9,266,0
Rect 10,100+g,9,9,1
Text 10,16,"Green "+g
Color 0,0,255
Rect 20,100,9,266,0
Rect 20,100+b,9,9,1
Text 20,32,"Blue "+b
Color 127,127,127
Rect 30,100,9,266,0
Rect 30,100+t,9,9,1
Text 30,48,"Tolerance "+t
End Function |
Comments
| ||
| Another one of those why did I never check this out before? programs. Very nice. DOG |
Code Archives Forum