I Viwer um Icons auszulesen und zu speichern
Verfasst: 29.09.2005 19:29
Ich habe mal eine kleines (Winziges) Programm geschrieben mit dem man die Icons aus Executabels, Librarys, Stuerelementen, usw.. auslesen kann.
Die Source ist free und kann für eure Programme verwendet werden.
Viel Spaß mit dem Code.
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