Skip to content

Latest commit

 

History

History
37 lines (20 loc) · 2.94 KB

README.md

File metadata and controls

37 lines (20 loc) · 2.94 KB

Rezak

Это консольная программа, которая обрезает пустые рамки изображения. Присоединиться к улучшению функционала может любой желающий, открыв актуальные задачи по ссылке. Добавляйте новые, задавайте вопросы по решению текущих.

Но зачем?
  • Предположим, что есть задача наскринить отзывов, для дальнейшего размещения скринов в вебе. Если лениво скринить руками, то на странице в вебе список таких скринов будет смотреться криво. Для облегчения жизни можно обрезать картинки по контенту.
  • Предположим у нас есть пдф книга, с большими отступами от текста которую ну очень хочется почитать на планшете с маленьким экраном. Можно разобрать книгу на картинки, обрезать и потом собрать. Читать будет удобнее.

Запуск

Для одиночного файла python main.py demo.png

Массово обрезать файлы в папке find ./img -type f | xargs -n1 python main.py

Было

Было

Стало

Стало

Алгоритм работы

Приложение "Резак" использует библиотеку Pillow, для работы с изображениями

  • При помощи Pillow картинка загружается в виде матрицы, в которой содержатся цвета.
  • Берем координаты пикселя 1.1 и получаем его цвет. Предполагается, что по этим координатам можно получить цвет рамки
  • Резак последовательно, попиксельно проверяет оси X и Y, двигаясь сверху, снизу, слева, справа, по направлению от края изображения, пока не найдет пиксель, цвет которого отличается.
  • В результате прохода получаем 4 самые крайние координаты пикселей, относительно 4х сторон и обрезаем изображение
  • Profit