Склеиваем картинки при помощи Perl и GD

Все наверное уже видели этот шэдевральный комикс от xkcd. А тем кто не видел — очень рекомендую посмотреть.
Ну так вот. Интересно мне было посмотреть как он выглядит целиком. И вот если бы я сначала подумал, а не сразу принялся бы код, то понял бы, что это бессмысленно. т.к. общий размер изображения 13+ ГИГАПИКСЕЛЕЙ. А моим вьювером, как выяснилось больше 0.6 ГП не открывается. Да и библиотека с изображениями, размер которых по одному из измерений больше 33 КП, работает нестабильно. Но зато я хоть немножко познакомился с GD.
Склеить получилось(нормально склеилось и нормально смотрелось) участок вот такого размера:

Полная же картинка выглядит так:

Второе изображение отсюда.
upd. На хабре узнал про скрол версию.
Для склейки изображений я набрасал простенький скрипт, код которого приведён далее.

К сожалению он умеет склеивать изображения только начиная от центра.

Запуск и измерение времени работы:

для 600’000’000 пикселей и высокой библиотеки вполне неплохо.
То что получилось. Осторожно, экран ещё разорвёт ;-) А если серьёзно, не везде открывается.
Каких либо важных выводов пока из этого не вынес, но меня порадовало то, что с помощью библиотечки для пёрла можно работать даже с теми картинками, которые не каждому нативному приложению для работы с графикой под силу.

Yuriy Nazarov on GithubYuriy Nazarov on Twitter
Yuriy Nazarov
Software engineer
Люблю machine learning