Итак, у нас есть изображение в файле map.gif. Давайте разрежем его на 12 частей: четыре части по горизонтали и три части по вертикали. В итоговой версии приложения количество частей можно будет изменять.
Для этого мы будем использовать методы crop и paste библиотеки PIL.Image. Вот как можно вырезать четыре кусочка карты в верхней строке:
from PIL import Image
im = Image.open('map.gif')
x, y = im.size
n, m = 4, 3 # количество частей карты
for i in range(n):
j = 0
im_new = Image.new('RGB', (x // n, y // m))
im_new.paste(im.crop((i * x // n, j * y // m, (i + 1) * x // n,
(j + 1) * y // m)))
im_new.save(f"image-{i * m + j}.gif")