Пара тапок » python pillow http://paratapok.ru Блог о веб-разработке Sun, 18 Dec 2022 12:14:48 +0000 ru-RU hourly 1 https://wordpress.org/?v=4.3.34 Какой фильтр использовать в Pillow для уменьшения картинок? http://paratapok.ru/backend/4638_kakoj-filtr-ispolzovat-v-pillow-dlya-umensheniya-kartinok/ http://paratapok.ru/backend/4638_kakoj-filtr-ispolzovat-v-pillow-dlya-umensheniya-kartinok/#comments Thu, 17 May 2018 05:48:25 +0000 http://paratapok.ru/?p=4638 Читать далее →]]> Большинство python-разработчиков при работе с изображениями используют в своих проектах библиотеку Pillow, перекрывающую подавляющее большинство задач, решаемых при разработке сайтов. Она поддерживает работу с наиболее популярными форматами в вебе — JPG, PNG, GIF.

Наиболее частая операция — изменение размеров картинки. Например, на вход подаётся изображение большого размера, а на выходе требуется получить маленькую превьюшку. С этой задачей легко справляется метод resize. Вторым аргументом функция принимает фильтр, определяющий алгоритм даунскейлинга картинки. От его выбора зависит качество результирующего изображения. Многие разработчики используют фильтр Bicubic — new_image = new_image.resize((width_custom, height_custom), Image.BICUBIC). Однако по факту гораздо лучшее сглаживание контрастных частей картинки даёт фильтр Lanczos.

На примере выше показан результат обработки картинки фильтрами Bicubic (слева) и Lanczos (справа). Уменьшение картинки с помощью фильтра Bicubic приводит к тому, что белая диагональная контрастная линия становится прерывистой, почти пунктирной.

Однако есть минус в масштабировании картинки фильтром Lanczos — размер итоговой картинки получается процентов на 10-15 больше, чем при сжатии картинки фильтром Bicubic.

]]>
http://paratapok.ru/backend/4638_kakoj-filtr-ispolzovat-v-pillow-dlya-umensheniya-kartinok/feed/ 0