ich will ein Icon, welches ich etwa hiermit lade:
Code: Alles auswählen
LoadIcon_(#Null, #IDI_ASTERISK)

MfG
Code: Alles auswählen
LoadIcon_(#Null, #IDI_ASTERISK)
Code: Alles auswählen
Procedure GetIcon(Icon.i)
Protected BM.BITMAP,Info.ICONINFO,MyIcon.i,MyImage.i
MyIcon=LoadIcon_(#Null,Icon)
GetIconInfo_(MyIcon,Info)
GetObject_(Info\hbmColor,SizeOf(BM),BM)
MyImage=CreateImage(#PB_Any,BM\bmWidth,BM\bmHeight,32,#PB_Image_Transparent)
StartDrawing(ImageOutput(MyImage))
DrawingMode(#PB_2DDrawing_AlphaBlend)
DrawImage(MyIcon,0,0)
StopDrawing()
DeleteObject_(Info\hbmColor)
DeleteObject_(Info\hbmMask)
DeleteObject_(MyIcon)
ProcedureReturn MyImage
EndProcedure
Image.i=GetIcon(#IDI_ASTERISK)
OpenWindow(0,0,0,100,100,"",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
StartDrawing(WindowOutput(0))
DrawingMode(#PB_2DDrawing_AlphaBlend)
DrawImage(ImageID(Image),0,0)
StopDrawing()
Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow
Code: Alles auswählen
OpenWindow(0,0,0,100,100,"",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
StartDrawing(WindowOutput(0))
DrawImage(LoadIcon_(#Null, #IDI_APPLICATION),0,0)
StopDrawing()
Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow
Code: Alles auswählen
EnableExplicit
UsePNGImageDecoder()
UsePNGImageEncoder()
Procedure IconToImage(Pfad$)
Protected Icon.SHFILEINFO, Image
SHGetFileInfo_(Pfad$, #FILE_ATTRIBUTE_NORMAL, @Icon, SizeOf(SHFILEINFO), #SHGFI_ICON|#SHGFI_SMALLICON|#SHGFI_USEFILEATTRIBUTES)
Image = CreateImage(#PB_Any, 16, 16, 32, #PB_Image_Transparent)
If IsImage(Image)
If StartDrawing(ImageOutput(Image))
DrawImage(Icon\hIcon, 0, 0)
StopDrawing()
EndIf
EndIf
ProcedureReturn Image
EndProcedure
Procedure.s ImageToBase64(Image)
Protected Len, *MemoryID, Base64$
*MemoryID = EncodeImage(Image, #PB_ImagePlugin_PNG)
If *MemoryID
Len = MemorySize(*MemoryID)
If Len
Base64$ = Base64Encoder(*MemoryID, Len)
EndIf
FreeMemory(*MemoryID)
EndIf
ProcedureReturn Base64$
EndProcedure
Procedure Base64ToImage(Base64$)
Protected Len, *MemoryID, Image
Len = StringByteLength(Base64$)
If Len
*MemoryID = AllocateMemory(Len+SizeOf(Character))
If *MemoryID
Len = Base64Decoder(Base64$, *MemoryID, Len)
If Len
Image = CatchImage(#PB_Any, *MemoryID, Len)
EndIf
FreeMemory(*MemoryID)
EndIf
EndIf
ProcedureReturn Image
EndProcedure
Define Base64$ = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACxElEQVQ4y42TXUiTURjHX7oshAjCSvswazrXu6bpwrFFmnkhjCDt86Ybg26yArvICDMiNOxDFjnD74/26WtOnbqtFqlzzrk2t8VMTArCLTNWYTa//p29iPDeVAd+cDjnPL/nOc/hUKbihJtDZcLRGXeL+0tAN/4vZt/pPaU3LhdIJJLEpKSkGKqzQoxnFyn0PdwGiyLuv9DcyRnMzJQWyGSyBMpQngzDLQrfPvvwv0NbcTosFIlLJamp6VRXhQBdZVxBOBzGxMQE/H4/PB4PQqEQR9By79Q8ny9SZND8I1R3pRC95ZvWBcFgEC6XC0Z7AFbrS6itDmj17fD7htYFrXfzF3g8ofKgICmLMj5Kg/lxLCuIZo4GB0Oz7MEFwsjvCORnzuOJsha+cQtZWeEKeqvEsCr3soJo2RZHAKvRSgjeSAS5cjmKq3vQ9sqOxroqrCzPcAV9CgkGGoVE4GWzDziH8YME+wmZUikOZYiRI8/HyAsGOt0gIj/NXEH/UxlsagkROEjDRqEb9MC+BNgigGkOYD4B3R+Agbce6DUMfs01cQUmZRYcTA4RWDE9PQaVRgvL1yVYSOPVk4BxGnCTOWP1oV9fjJWlN1yBuSYbTkMeERhJ0QE4HN2obdOC8X6Es4fB68AUG2zUPcDcZBE5Y2UFycl0DUfgMV8lm85o3+EaU6G5QcnemdFb0KsuwozrJFZXush+N5pvH4sk7qdrRTSdwwqmnIUw3OezdiD6VCYsL3Zgcb6ZUE+oI2t6goagwmDrcWRLpZ08Hv/EuqDlCvkPCnqNA2sI1khZg7/O8xLpdx6PLqT6SoS298MXMFK9Abb63RhuTIC9aR8cKhpOrQgu5jDcBhk8PVnw9uXCZ86DqebSwjn50dGU5NRrVHy8IGPrLvr65jhRQ8z2tPaNsaKOvxGzQ8Rs2Zmm2sNLrxQK08/+AT7DtgPNEOzeAAAAAElFTkSuQmCC"
If OpenWindow(0, 0, 0, 50, 200, "Window", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ButtonImageGadget(1, 0, 0, 100, 50, ImageID(Base64ToImage(Base64$)))
ButtonImageGadget(2, 0, 50, 100, 50, ImageID(IconToImage(#PB_Compiler_Home + "examples/sources/Data/CdPlayer.ico")))
ButtonImageGadget(3, 0, 100, 100, 50, ImageID(Base64ToImage(ImageToBase64(IconToImage(#PB_Compiler_Home + "examples/sources/Data/CdPlayer.ico")))))
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf