DrawImageTiled(#Image, x, y, TileWith, TileHeight)
Verfasst: 13.04.2012 21:23
Habe ich für ein aktuelles Projekt gesucht. Im englischen Forum hab ich nur sehr große Lösungen gefunden.
Nicht ImageID() verwenden!
Hinzu kommt noch Width und Height zur Skalierung...
Nicht ImageID() verwenden!
Hinzu kommt noch Width und Height zur Skalierung...
Code: Alles auswählen
Procedure DrawImageTiled(id, x, y, w, h)
Protected tx, ty, temp, gw, gh, image_w, image_h
image_w = ImageWidth(id)
image_h = ImageHeight(id)
For tx=0 To w/image_w-1
For ty=0 To h/image_h-1
DrawImage(ImageID(id), x+tx*image_w, y+ty*image_h)
Next
Next
; Bottom
gh = h-(h/image_h)*image_h
temp = GrabImage(id, #PB_Any, 0, 0, image_w, gh)
For tx=0 To w/image_w-1
DrawImage(ImageID(temp), x+tx*image_w, y+(h/image_h)*image_h)
Next
FreeImage(temp)
; Right
gw = w-(w/image_w)*image_w
temp = GrabImage(id, #PB_Any, 0, 0, gw, image_h)
For ty=0 To h/image_h-1
DrawImage(ImageID(temp), x+(w/image_w)*image_w, y+ty*image_h)
Next
FreeImage(temp)
; Edge
gw = w-(w/image_w)*image_w
gh = h-(h/image_h)*image_h
temp = GrabImage(id, #PB_Any, 0, 0, gw, gh)
DrawImage(ImageID(temp), x+(w/image_w)*image_w, y+(h/image_h)*image_h)
FreeImage(temp)
EndProcedure