Media
December 15, 2021

Делим изображение на части

Случайно или нет я увидел в инете фотографию Солнца сделанную с применением разных фильтров. Астрономы НАСА сняли Солнце используя разные параметрические фильтры и в результаты сложили на одно большое изображение.

Фотографии в других размерностях - 4096х4096 - 2048х2048
Красиво да!.
Первое что мне пришло в мою шальную голову это сделать кисточки для GIMP из кусочков ну или на худой конец текстуры! Они такие фантастические. Вот тут вспомнился и наш GIMP и его инструмент - "гильотина", но размер исходного изображения не позволял реально разрезать эту картинку ибо время требовалось не мерено, а так же и ресурсов . И вот здесь как раз пришел на помощь ImageMagick и прямая команда из терминала с определенным ключом. Конечно чтобы получить наибольшее разрешение в кусочков была скачена на диск фотка размером 4096х4096 и ее мы записали на диск под именем sun.jpg, а дальше в терминале ввели такую команду

convert sun.jpg -crop 683x512  \
          +repage  +adjoin  sun_%02d.png

и получили 48 кусочков размером 683х512px всего за секунд 5 не более, а может и меньше. Фактически мы выполнили типичное действие с фотографией которое зачастую занимает минуты долгих преобразований в визуальных редакторов типа фотошоп.
Давайте теперь рассмотри по порядку каждый аргумент нашего действа. В данном случае мы воспользовались командой пакета convert c аргументами. Основной аргумент это конечно ссылка на наше исходное изображение в виде имени файла, и также шаблон имени для выводных файлов, которых будет ровно 48 штук, ибо столько делений на самой фотке, которые будем делить, итак считаем

4096 / 6 = 683 - по ширине
4096 / 8 = 512 - по высоте

этот параметр входит как аргумент к ключу этот параметр входит как аргумент к ключу -crop 683x512, а чтобы все полченые кусочки имели нулевые координаты в верхнем левом углу встпвляем аргумент +repage. И наконец мы указываем команде, что все полученные кусочки должны располагаться в отдельных файлах, в соответствии с нашим заданным шаблоном, мы вставляем аргумент +adjoin.
Чтобы закончить - мы определяем будущий шаблон выдачи как sun_%02d.png. Этот вид формата используется в языке Си и в других языках и сообщает команде, что нужно сформировать имена для каждого файла в виде двух цифр с ведущим нулем, которые будут отличаться друг от друга ровно на 1 и начинаться с 0.
Вот и все - получившийся результат перед вами!,

Да бы не затемнять заметку излишними ссылками, последнюю картинку стилизовали под одно изображение. Чтоб все же увидеть каждое полученное изображение или скачать, можно пройти по ссылке

https://yadi.sk/d/QSikAQax3MoeDj