da ichs gerade selber brauchte hier mal ein kleiner Tileset Creator:
Code: Alles auswählen
UsePNGImageDecoder()
UsePNGImageEncoder()
UseJPEGImageDecoder()
UseJPEGImageEncoder()
OpenWindow(1, 0, 0, 400, 300, "Tileset Creator", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
CreateGadgetList(WindowID(1))
ListIconGadget(1, 0, 0, 400, 260, "File", 395, #PB_ListIcon_MultiSelect)
ButtonGadget(10, 10, 270, 40, 20, "ADD")
ButtonGadget(11, 60, 270, 40, 20, "DEL")
ButtonGadget(12, 350, 270, 40, 20, "SAVE")
Repeat
Event = WaitWindowEvent()
If CountGadgetItems(1) = 0
DisableGadget(12, 1)
Else
DisableGadget(12, 0)
EndIf
Select Event
Case #PB_Event_Gadget
GadgetID = EventGadget()
Select GadgetID
Case 10
AddFile$ = OpenFileRequester("Add File....", "", "BMP- JPEG- PNG- Datei|*.bmp;*.png;*.jpeg;*.jpg", 0, #PB_Requester_MultiSelection)
While AddFile$
AddGadgetItem(1, -1, AddFile$)
AddFile$ = NextSelectedFileName()
Wend
Case 11
For i = 1 To CountGadgetItems(1)
If GetGadgetItemState(1, i)
RemoveGadgetItem(1,i)
i-1
EndIf
Next
Case 12
If LoadImage(1, GetGadgetItemText(1, 0))
w = ImageWidth(1)
h = ImageHeight(1)
FreeImage(1)
nw = Round(Sqr(CountGadgetItems(1)), 1)
nh = CountGadgetItems(1)/nw
nw*w
nh*h
If Not CreateImage(0, nw, nh) = 0
x = 0
y = 0
savefile$ = SaveFileRequester("Save Tileset...", "", "*.png", 0)
If Not savefile$ = ""
If Not GetExtensionPart(savefile$) = "png"
savefile$+".png"
EndIf
For i = 0 To CountGadgetItems(1)-1
If LoadImage(1, GetGadgetItemText(1, i))
StartDrawing(ImageOutput(0))
DrawImage(ImageID(1), x, y)
x+w
If x >= nw
y+h
x = 0
EndIf
StopDrawing()
FreeImage(1)
EndIf
Next
SaveImage(0, savefile$, #PB_ImagePlugin_PNG)
EndIf
EndIf
EndIf
End
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
End
Scarabol
