@EnderToy

Как разделить фото через каждые n пикселей?

Предположим, у меня есть 3 фото по 30'000 пикселей в высоту. Я их обьеденю (как не знаю, позже буду искать) и получу фото 90'000 пикселей. Дальше мне нужно разделить это фото на равные части, скажем, по 2'000 пикселей.
Вопрос: как разделить вышеупомянутое изображение на равные(по 2'000 пикселей) части?
Видел библиотеку Pil, но не могу разобраться как её использовать для подобного. Так же может быть такое, что в последнем кусочке картинки будет меньше 2К пикселей, тут бы оставить его.
Сохранять нужно в папку с нумерацией "001","002" и ТД. Но это не так важно. Там и сам разберусь, главное понять как делить...
Надеюсь на вашу помощь. Спасибо.
  • Вопрос задан
  • 243 просмотра
Решения вопроса 1
@EnderToy Автор вопроса
def crop_img(path):
    im = add_imgs(path)
    size_max = 1800
    width, height = im.size
    number = 1
    while height>size_max:
        save = im.crop((0, 0, width, size_max))
        save.save(f"D:\\\{'{:03}'.format(number)}.jpg")
        im = im.crop((0, size_max, width, height))
        height -= size_max
        print(number, height)
        number += 1

    print(number)
    im = im.crop((0, 0, width, height))
    im.save(f"D:\\\{'{:03}'.format(number)}.jpg")
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
В простом варианте картинка это список из 100 списков по 100 ячеек, в каждой ячейке вложенного списка находятся три числа типа int8, отражающие яркость по одному из трех цветов (red green blue). Слепить три картинки при условии одинаковой ширины - просто соединить три списка верхнего уровня.
Потом рубим его банальными срезами с шагом (70 строк, примерно получается 3*70*100 = 2100 пикселей, и получаем набор требуемых кусочков.
Ответ написан
Комментировать
Можно воспользоваться imagemagick. Без python.
convert -crop 2000x2000 input.png %03d.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы