Achso ... jetzt versteh' ich
Code: Alles auswählen
; German forum: http://robsite.de/php/pureboard/viewtopic.php?p=21346#21346
; Author: Andreas (updated for PB3.92+ by Andre)
; Date: 02. November 2003
#DI_NORMAL = $3
; Saves the content of the displayed IMAGEGADGET in an .bmp file...
If OpenWindow(0,0,0,245,105,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"IMAGEGADGET") And CreateGadgetList(WindowID(0))
;Icon ins ImageGagdet
ImageGadget(0, 10,10,100,83,ExtractIcon_(0,"shell32.dll",1))
;oder Bitmap
;IMAGEGADGET(0, 10,10,100,83,LoadImage(10,"C:\windows\setup.bmp"))
;erstmal herausfinden ob Bitmap oder Icon
If SendMessage_(GadgetID(0),#STM_GETIMAGE,#IMAGE_BITMAP,0)
MessageRequester("Image","Bitmap",0)
;BITMAP Speichern als Bitmap
Handle = SendMessage_(GadgetID(0),#STM_GETIMAGE,#IMAGE_BITMAP,0)
GetClientRect_(GadgetID(0),r.RECT)
SDC = CreateCompatibleDC_(0)
SelectObject_(SDC,Handle)
CreateImage(1,r\right,r\bottom)
hdc=StartDrawing(ImageOutput())
BitBlt_(hdc,0,0,r\right,r\bottom,SDC,0,0,#SRCCOPY)
StopDrawing()
Name$ = SaveFileRequester("Speichern","unbenannt.bmp","*.bmp",0)
If Name$
SaveImage(1,Name$,#PB_ImagePlugin_BMP);Pfad anpassen
EndIf
FreeImage(1)
DeleteDC_(SDC)
ElseIf SendMessage_(GadgetID(0),#STM_GETIMAGE,#IMAGE_ICON,0)
MessageRequester("Image","Icon",0)
;ICON Speichern als Bitmap
Handle = SendMessage_(GadgetID(0),#STM_GETIMAGE,#IMAGE_ICON,0)
GetClientRect_(GadgetID(0),r.RECT)
CreateImage(1,r\right,r\bottom)
hdc=StartDrawing(ImageOutput())
DrawIconEx_(hdc,0,0,Handle,r\right,r\bottom,0,0,#DI_NORMAL)
StopDrawing()
Name$ = SaveFileRequester("Speichern","unbenannt.bmp","*.bmp",0)
If Name$
SaveImage(1,Name$,#PB_ImagePlugin_BMP);Pfad anpassen
EndIf
FreeImage(1)
EndIf
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf