Convert Color BMP to Black & White
Posted: Fri Jun 20, 2003 8:23 am
Code updated for 5.20+
Code: Select all
;Black and White example by ricardo arias
#Image = 1
Procedure FX()
MyImage = CreateImage(0, ImageWidth(#Image),ImageHeight(#Image))
SetGadgetState(#Image,ImageID(#Image))
StartDrawing(ImageOutput(0))
hDC = GetDC_(GadgetID(#Image))
For i = 0 To ImageHeight(0) - 1
For ii = 0 To ImageWidth(0) - 1
Color =GetPixel_(hDC,ii,i)
Temp = (Red(Color) + Green(Color) + Blue(Color))/3
NewColor = RGB(Temp,Temp,Temp)
Plot(ii, i, NewColor)
Next ii
Next i
Beep_(1000,100)
StopDrawing()
SetGadgetState(#Image, ImageID(0))
SaveImage(0, "Black&White.bmp", #PB_ImagePlugin_BMP)
EndProcedure
FileName$ = OpenFileRequester("Select a Bmp", "", "Bmp|*.bmp|", 0)
If FileName$
LoadImage(#Image,FileName$)
If OpenWindow(0,0,0,300,300,"B&W",#PB_Window_SystemMenu)
ImageGadget(#Image,10,10,ImageWidth(#Image), ImageHeight(#Image), ImageID(#Image))
ButtonGadget(2,240,100,50,25,"B&W")
Repeat
EventID=WaitWindowEvent()
Select EventID
Case #PB_Event_Gadget
Select EventGadget()
Case 2
FX()
EndSelect
EndSelect
Until EventID = #PB_Event_CloseWindow
EndIf
EndIf
End