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