Die Source ist free und kann für eure Programme verwendet werden.
Code: Alles auswählen
DefType.s OpenFile,SaveFile,OpenLibrary
DefType.l IconIndex
UseJPEGImageEncoder()
UsePNGImageEncoder()
If OpenWindow(0,0,0,135,100,#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_Invisible,"I Viwer")
If CreateGadgetList(WindowID(0))
Frame3DGadget(0,5,5,60,60,"Icon")
Frame3DGadget(2,70,5,60,60,"Auswahl")
ComboBoxGadget(3,75,30,50,160)
ButtonGadget(4,5,75,60,20,"Laden")
ButtonGadget(5,70,75,60,20,"Speichern")
EndIf
DisableGadget(3,1)
DisableGadget(5,1)
EndIf
HideWindow(0,0)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
Select EventGadgetID()
Case 3
FreeGadget(1)
ImageGadget(1,18,23,32,32,ExtractIcon_(0,@OpenLibrary,GetGadgetState(3)))
Case 4
OpenFile = OpenFileRequester("Datei öffnen","","Icon Dateien (*.*)|*.*",0);Dynamic Link Library (*.dll)|*.dll|Icon (*.ico)|*.ico",0)
If OpenFile <> ""
IconIndex = ExtractIcon_(0,@OpenFile,-1) - 1
If IconIndex >= 0
OpenLibrary = OpenFile
ClearGadgetItemList(3)
For i = 0 To IconIndex
AddGadgetItem(3,-1,Str(i))
Next i
SetGadgetState(3,0)
FreeGadget(1)
ImageGadget(1,18,23,32,32,ExtractIcon_(0,@OpenLibrary,GetGadgetState(3)))
DisableGadget(3,0)
DisableGadget(5,0)
Else
MessageRequester("I Viewer","Kein Icon in ''"+GetFilePart(OpenFile)+"'' gefunden!",0|16)
EndIf
EndIf
Case 5
SaveFile = SaveFileRequester("Datei öffnen","Icon_"+Str(GetGadgetState(3)),"BMP - Windows Bitmap|*.bmp|JPG - JPEG Datien|*.jpg|PNG - Portable Network Graphics|*.png",0)
If SaveFile <> ""
If PathFileExists_(SaveFile) = #FALSE
CreateImage(0,32,32)
StartDrawing(ImageOutput())
DrawImage(ExtractIcon_(0,@OpenLibrary,GetGadgetState(3)),0,0)
StopDrawing()
Select SelectedFilePattern()
Case 0
If GetExtensionPart(SaveFile) = "bmp"
SaveImage(0,SaveFile,#PB_ImagePlugin_BMP)
Else
SaveImage(0,SaveFile+".bmp",#PB_ImagePlugin_BMP)
EndIf
Case 1
If GetExtensionPart(SaveFile.s) = "´jpeg"
SaveImage(0,SaveFile,#PB_ImagePlugin_JPEG,10)
Else
SaveImage(0,SaveFile+".jpeg",#PB_ImagePlugin_JPEG,10)
EndIf
Case 2
If GetExtensionPart(SaveFile) = "png"
SaveImage(0,SaveFile,#PB_ImagePlugin_PNG)
Else
SaveImage(0,SaveFile+".png",#PB_ImagePlugin_PNG)
EndIf
EndSelect
MessageRequester("I Viewer","Das Icon wurde erfolgreich abgespeichert.",0|64)
EndIf
EndIf
EndSelect
EndSelect
ForEver
; ExecutableFormat=Windows
; UseIcon=Icon.ico
; Executable=I Viewer.exe
; EOF