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