Animerade akvarell karta för Cycle Tour/tävlingen videor (5 / 9 steg)
Steg 5: Sammanfoga plattor till en bild
Python bevisar några grundläggande image manipulation verktyg som vi använder. Kakel storlek definieras inom funktionen som 256 x 256 som något av en standard, men värt bekräftar om du använda plattor från en annan källa.
Helt enkelt loopa igenom krävs spänna av kakel, läsa i varje kakel och klistra in den i bilden. Sedan "klistra in" förlägger det övre vänstra hörnet av bilden på de angivna koordinaterna, varje kakel kommer att placeras på (X * tilesize, Y * tilesize) där X, Y varierar från noll till antal plattor i X eller Y-led.
### Sammanfoga plattor till en bild ###
def mergeTiles(xyRange,zoom,filename):
importera bild
tileSize = 256
tileDir = os.path.join(os.curdir,"tiles",str(zoom))
ut = Image.new ("RGB", ((xyRange["xMax"]-xyRange["xMin"]+1) * tileSize, (xyRange["yMax"]-xyRange["yMin"]+1) * tileSize))
imx = 0;
x i rad (xyRange ["xMin"], xyRange["xMax"]+1):
IMY = 0
för y i intervallet (xyRange ["yMin"], xyRange["yMax"]+1):
tileFile = os.path.join(tileDir,str(x),str(y)+".jpg")
kakel = Image.open(tileFile)
out.paste (kakel, (imx, imy))
IMY += tileSize
imx += tileSize
out.Save(OS.Path.Join(OS.CurDir,filename))