Image module python windows

Python Imaging Library — начало

Введение:

Возможности:

Создаем изображение:

Выводим формат, тип, размер изображения:

Выводим информацию о изображении:

Конвертация изображения:

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

  • 19 февраля 2021 в 01:07 Списки и словари в Python. Разница и смысл
  • 4 марта 2021 в 16:42 Небольшой скрипт на python для поиска ошибок
  • 18 марта 2021 в 11:16 Selenium python как сохранить данные сессии и установить кастомный путь до профиля Chrome
  • 18 марта 2021 в 01:19 Viber Bot на Python
  • 8 апреля 2021 в 17:09 Обработка и анализ текстов на Python и Spark NLP

Это «Песочница» — раздел, в который попадают дебютные посты пользователей, желающих стать полноправными участниками сообщества.

Если у вас есть приглашение, отправьте его автору понравившейся публикации — тогда её смогут прочитать и обсудить все остальные пользователи Хабра.

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

Не надо пропускать:

  • рекламные и PR-публикации
  • вопросы и просьбы (для них есть Хабр Q&A);
  • вакансии (используйте Хабр Карьеру)
  • статьи, ранее опубликованные на других сайтах;
  • статьи без правильно расставленных знаков препинания, со смайликами, с обилием восклицательных знаков, неоправданным выделением слов и предложений и другим неуместным форматированием текста;
  • жалобы на компании и предоставляемые услуги;
  • низкокачественные переводы;
  • куски программного кода без пояснений;
  • односложные статьи;
  • статьи, слабо относящиеся к или не относящиеся к ней вовсе.

Python Imaging Library (PIL)

Данная публикация представляет собой перевод самых необходимых модулей пакета для работы с изображениями на языке Python.

Перевод Python Imaging Library (PIL) делался по официальной документации и содержит ряд самых необходимых модулей:

  1. The Image Module — Модуль содержит функций, методы и свойства для открытия, сохранения и манипулирования изображениями;
  2. The ImageChops Module — Модуль содержит много арифметических операций над изображениями;
  3. The ImageColor Module — Модуль содержит функции для преобразования строки определения цвета в кортеж формата RGB;
  4. The ImageDraw Module — Модуль для рисования простой 2D-графики. Используется для рисования, создания новых изображений, создания текста и ретуширования существующие изображения;
  5. The ImageGrab Module – Модуль содержат функции которые помогают сделать снимок экрана.
  6. The ImageFont Module – Модуль содержит функционал для работы с TrueType и OpenType шрифтами.

Сразу хочу отметить, что это не дословный перевод. Материал направлен на новичков стремящихся разобраться в возможностях данного пакета. За более подробной информации по каждому инструменту рекомендуется обратиться к официальной документации.

Скачать пакет для Python версий 2 и 3 можно от сюда: http://www.lfd.uci.edu/

The Image Module

Модуль Image содержит функций, методы и свойства для открытия, сохранения и анализа изображений.

Функции

new
Image.new(mode, size) => изображение
Image.new(mode, size, color) => изображение

Создает новое изображение с данным режимом и размером. Размер задаётся виде котрежа «(100,100)». Если цвет опущен то изображение будет заполнено черным цветом. Режимы могут быть: 1 (черно-белый), L (монохромный, оттенки серого), RGB, RGBA (RGB с альфа каналом), CMYK, YCbCr, I (32 bit Integer pixels), F (32 bit Float pixels).

Читайте также:  Что делать если нет курсора при установке windows

open
Image.open(infile) => изображение
Image.open(infile, mode) => изображение

Открывает и идентифицирует файл изображения.

blend
Image.blend(image1, image2, alpha) => изображение

Создает новое изображение путем интерполяции между заданными изображениями, с помощью постоянной альфа. Оба изображения должны иметь одинаковый размер и режим.

composite
Image.composite(image1, image2, mask) => изображение

Создает новое изображение путем интерполяции между заданными изображениями, используя маску, как альфа. Маска изображение может иметь режим «1», «L», или «RGBA». Все изображения должны быть одинакового размера.

eval
Image.eval(image, function) => изображение

Применяет функцию для каждого пикселя в данном изображении.

frombuffer
Image.frombuffer(mode, size, data) => изображение

Создает образ памяти из пиксельных данных в строке или буфере, используя стандартный «сырой» декодер.

fromstring
Image.fromstring(mode, size, data) => изображение

Создает образ памяти из пиксельных данных в строке или буфере, используя стандартный «сырой» декодер.

merge
Image.merge(mode, bands) => изображение

Создает новое изображение из нескольких отдельных изображений. Bands задаются как кортеж или список изображений, по одному для каждой Bands описывается режиме. Все Bands должны иметь одинаковые размеры.

Методы

Возвращает преобразованную копию изображения.

im.convert(mode, matrix) => изображение

Преобразует «RGB» изображение в «L» или «RGB», используя матрицы преобразования.
Матрица представляет собой 4 — или 16-кортеж.

Возвращает прямоугольную область от текущего изображения. Box это 4-кортеж определяющие левый, верхний, правый и нижний пиксель координат.

Настраивает загрузчик файлов изображений, чтобы он возвращал версию изображения, которые как можно более точно соответствует данному режиму и размеру. Например, можно использовать этот метод для преобразования цветов в оттенки серого JPEG при загрузке, или для извлечения 128×192 версии с PCD файла.

Возвращает копию изображения фильтруя заданным фильтром. Для получения списка доступных фильтров, см. модуль ImageFilte.

fromstring
im.fromstring(data)
im.fromstring(data, decoder, parameters)

То же, что fromstring функции, но загружает данные в текущее изображение.

getbands
im.getbands() => кортеж строк

Возвращает кортеж, содержащий имя каждой группы. Например, getbands на изображение RGB возвращается («R», «G», «B»).

getbbox
im.getbbox() => 4-кортеж или None

Вычисляет ограничивающий прямоугольник ненулевых областей в изображении. Если изображение пусто то вернёт None.

getcolors
im.getcolors() => список кортежей (число, цвет) или None
im.getcolors(maxcolors) => a список кортежей (число, цвет) или None

Возвращает несортированный список кортежей (число, цвет), где подсчитывается, сколько раз соответствующий цвет встречается в изображении.

Если значение maxcolors будет превышено, метод прекращает счет и возвращает None. Значение по умолчанию maxcolors 256.

Возвращает содержимое изображения в виде последовательности, содержащий значения пикселей.

Возвращает 2-кортеж, содержащий минимальное и максимальное значения изображение.

getpixel
im.getpixel(xy) => значение или кортеж

Возвращает пиксель в данной позиции.

Возвращает гистограмму изображения. Гистограмма возвращается как список пикселей.

Возвращает гистограммы для тех частей изображения, где изображения маски не равно нулю.

Загружает пиксели из файла изображения.

Вставляет изображение в другое. Box это либо 2-кортеж определяющий верхний левый угл или 4-кортеж определяющий левый, верхний, правый и нижний пиксель координат или None (то же, (0, 0)). Если 4-кортеж то область должна соответствовать размеру изображения.

То же самое, но заполняет область цветом.

im.paste(image, box, mask)

Тоже самое но с маской.

im.paste(colour, box, mask)

Тоже самое но с маской.

point
im.point(table) => изображение
im.point(function) => изображение

Возвращает копию изображения, где каждый пиксель был сопоставлен по данной таблице.

putdata
im.putdata(data)
im.putdata(data, scale, offset)

Палитра для «P» или «L» изображений.

Изменяет цвет пикселя в данной позиции.

resize
im.resize(size) => изображение
im.resize(size, filter) => изображение

Возвращает копию изображения с измененными размерами. Фильтр может быть: NEAREST, BILINEAR, BICUBIC, ANTIALIAS.

Читайте также:  Battle net для линукс

rotate
im.rotate(angle) => изображение
im.rotate(angle, filter=NEAREST, expand=0) => изображение

Возвращает копию изображения повернутую на указанное кол-во градусов против часовой стрелки вокруг её центра. Фильтр может быть: NEAREST, BILINEAR, BICUBIC.

save
im.save(outfile, options…)
im.save(outfile, format, options…)

Сохраняет изображение в файл. Если формат не указан, формат определяется по расширению файла, если это возможно. Возвращает None.
Можно использовать файловый объект, а не имя файла, в этом случае необходимо определять формат. Объект файла должен реализовывать seek , tell и write методы, должен быть открыт в двоичном режиме.

Отображение изображения. Этот метод предназначен в основном для отладки.

Возвращает кортеж из отдельных полос изображения с изображениями. Например, расщепление «RGB» создает три новых изображения каждый из которых содержит копию одного из оригинальных полос (красный, зеленый, синий).

Возвращает номер текущего кадра.

Изменяет размер самого изображения. Фильтр может принимать значения NEAREST , BILINEAR , BICUBIC , или ANTIALIAS.

Возвращает изображение преобразованное в X11 растровое изображения.

Возвращает строку, содержащую данные пикселей, с использованием стандартного «сырого» энкодера.

im.tostring(encoder, parameters) => строка

Возвращает строку, содержащую данные пикселей, используя данный кодирования данных.

transform
im.transform(size, method, data) => изображение
im.transform(size, method, data, filter) => изображение

Создает новое изображение заданного размера, и того же режима, что и оригинал. Метод может быть: EXTENT, AFFINE, QUAD, MESH. См. документацию.

Возвращает повёрнутую копию изображения. Метод может иметь следующий вид:
FLIP_LEFT_RIGHT, FLIP_TOP_BOTTOM, ROTATE_90, ROTATE_180, или ROTATE_270.
Или число от 1 до 4, в зависимости от версий модуля.

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

Свойства

format
im.format => строка или None

Формат файла исходного файла.

Режим изображения. Типичные значения «1», «L», «RGB», или «CMYK».

size
im.size => (width, height)

Размер изображения в пикселях. Размер указан в виде 2-кортежа (ширина, высота).

palette
im.palette => палитру или None

Цветовая палитра таблицы, если имеется.

Словарь данных, связанных с изображением.

The ImageChops Module

Модуль ImageChops содержит множество арифметических операций над изображениями. Они могут быть использованы для различных целей, в том числе специальные эффекты, изображение композиции, алгоритмической живописи, и многое другое.

Операции реализованы только для 8-битных изображений (например, «L» и «RGB»).

constant
ImageChops.constant(image, value) => изображение

Вернёт новый слой размером с указанное изображение и заполненный цветом указанным значением value (0-255).

lighter
ImageChops.lighter(image1, image2) => изображение

Сравнивает два изображения, пиксель за пикселем, и возвращает новое изображение, содержащее “лёгкие” цвета.

darker
ImageChops.darker(image1, image2) => изображение

Сравнивает два изображения, пиксель за пикселем, и возвращает новое изображение, содержащее “тёмные” цвета.

difference
ImageChops.difference(image1, image2) => изображение

Возвращает абсолютное значение разницы между двумя изображениями.

multiply
ImageChops.multiply(image1, image2) => изображение

Накладывает два изображения друг на друга. Если умножить изображение с черным изображение, то результат будет черным.

screen
ImageChops.screen(image1, image2) => изображение

Накладывает два инвертированные изображения друг на друга.

add
ImageChops.add(image1, image2, scale, offset) => изображение

Добавляет два изображения, разделив результат на масштаб и добавив смещение. Масштаб по умолчанию 1.0, и смещение 0.0.

subtract
ImageChops.subtract(image1, image2, scale, offset) => изображение

Вычитание двух изображений, разделив результат на масштаб и добавив смещение. Масштаб по умолчанию 1.0, и смещение 0.0.

blend
ImageChops.blend(image1, image2, alpha) => изображение

То же, что функция blend в модуле Image.

composite
ImageChops.composite(image1, image2, mask) => изображение

То же, что функция composite в модуле Image.

Читайте также:  Vcruntime dll что это за ошибка как исправить windows 10 64 bit

The ImageColor Module

Модуль ImageColor содержит функции для преобразования строки определяющую цвет в RGB кортеж. Этот модуль используется в Image.new и ImageDraw модуле.

Модуль ImageColor поддерживает следующие форматы строк:

  1. Шестнадцатеричные спецификаторы цвета, вида «#RGB» или «#RRGGBB». Например, «# ff0000»;
  2. RGB функции, вида «rgb(красный, зеленый, синий)». Например, «rgb(255,0,0)» и «rgb(100%, 0%, 0%)»;
  3. HSL функций (Тон-Насыщенность-Яркость) заданных в качестве «HSL (тон, насыщенность%, яркость%)», где тон цвета дается как угол между 0 и 360, насыщение значения между 0% и 100%, и яркость это значение от 0% до 100. Например, «hsl(0,100%, 50%)»;
  4. HTML названия цветов. Модуль ImageColor поддерживает около 140 стандартных названий цветов. Например «red» или «white».

Функции

getrgb
getrgb(color) => (красный, зеленый, синий)

Преобразует строку обозначающую цвет в RGB кортеж.

getcolor
getcolor(color, mode) => (красный, зеленый, синий) или целое число

То же что и функция getrgb, но можно задать режим, “RGB”, “RGBA” или “L”

The ImageDraw Module

Модуль содержит инструменты для рисования простой 2D-графики.

Формат цвета такой же как в модуле ImageColor.

Шрифты — PIL можете использовать растровые шрифты или OpenType / TrueType шрифты. Для загрузки шрифтов OpenType / TrueType следует использовать TrueType функции из модуля ImageFont.

Функции

Draw(image) => объект Draw

Создает объект, который можно использовать для рисования в данном изображении.

Методы

arc
draw.arc(xy, start, end, fill=None)

Рисует дугу между начальными и конечными углами, внутри данной ограничительной рамки.

bitmap
draw.bitmap(xy, bitmap, fill=None)

Рисует изображение (маска) на данной позиции, используя текущий цвет заливки.

chord
draw.chord(xy, start, end, fill=None, outline=Nonez)

То же, что дуга , но соединяет концы прямой линией.

ellipse
draw.ellipse(xy, fill=None, outline=None)

line
draw.line(xy, fill=None, width=0)

Аргумент может быть списком, кортежем или списком кортежей “[(0, 30), (30, 0)]”

pieslice
draw.pieslice(xy, start, end, fill=None, outline=None)

То же, что дуга, но и рисует прямые линии между конечными точками и в центре ограничительной рамки.

Рисует точку (отдельных пикселей) на заданной координате.

polygon
draw.polygon(xy, fill=None, outline=None)

rectangle
draw.rectangle(box, fill=None, outline=None)

text
draw.text(position, string, fill=None, font=None)

Рисует строку в заданную позицию.

textsize
draw.textsize(string, font=None) => (width, height)

Возвращает размер строки в пикселях.

The ImageGrab Mobule

Модуль ImageGrab может быть использован для копирования содержимого экрана (скриншот). Текущая версия работает только в Windows.

grab
ImageGrab.grab() => изображение
ImageGrab.grab(BBOX) => изображение

Сделает снимок экрана, и вернёт «RGB» изображение. При использование с аргументом можно копирования только часть экрана. BBOX это кортеж определяющий координаты левого верхнего пикселя и ширина с высотой.

grabclipboard
ImageGrab.grabclipboard () => изображений или список строк или None

Сделает снимок содержимого буфера обмена и вернёт изображение или список имен файлов. Если буфер обмена не содержит данных, то функция возвратит None.

The ImageFont Module

Модуль используется для работы с TrueType и OpenType шрифтами. Можно использовать совместно с модулем ImageDraw.

Функции

load
ImageFont.load(file) => объект шрифта

Загружает шрифт из указанного файла, и возвращает соответствующий объект шрифта.

load_path
ImageFont.load_path(file) => объект шрифта

То же, что функция load, но ищет файл вместе c sys.path, если он не найден в текущем каталоге.

truetype
ImageFont.truetype(file, size) => объект шрифта

Загружает TrueType или OpenType файл шрифта и создаёт объект со шрифтом заданного размера.

ImageFont.truetype(file, size, encoding=value) => объект шрифта

Загружает TrueType или OpenType файл шрифта и создаёт объект со шрифтом заданного размера. И задаёт кодировку: «UNIC» (Unicode), «Symb» (Microsoft Symbol), «ADOB» (Adobe Standard), «ADBE» (Adobe Expert), и «armn» (Apple Roman).

Оцените статью