Вы можете использовать Python с Python Imaging Library (PIL) .
Сначала я бы сделал список имен файлов и их координат. Извлеките целочисленные координаты из имен файлов с помощью регулярных выражений и сохраните их в списке словарей:
>>> filename = 'x=92664y=48131zoom=17.png'
>>> imagePattern = re.compile(r'^x=(\d{5})y=(\d{5})zoom=17.png$')
>>> x,y = map(int, imagePattern.search(filename).groups())
>>> {'x':x, 'y':y, 'filename':filename}
{'y': 48131, 'x': 92664, 'filename': 'x=92664y=48131zoom=17.png'}
Наличие списка словарей позволяет вам сортировать их по одному из измерений:
tileListSortedByX = sorted(tileList, key = lambda i: i["x"])
, а также отфильтруйте их:
fileListWhereX48131 = [tile for tile in tileList if tile["x"]==48131]
С помощью этих двух операций вы можете легко представить циклы для , чтобы построчно перебирать плитки.
Последнее, что вам нужно, чтобы создать большое пустое изображение (с PIL), куда вы будете вставлять маленькие изображения плитки. Его размер будет кратен размеру плитки.
>>> from PIL import Image
>>> bigImage = Image.new('RGB',(300,300),(255,255,255))
#creates a white 300x300 image
Вставка маленьких изображений в большие выглядит следующим образом:
>>> smallImage = Image.open(tile["filename"])
>>> bigImage.paste(smallImage,(0,0))
Надеюсь, вы поняли идею.