graphics

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

graphics.screenshot()

Возвращает объект Image, содержащий изображения экрана. Отмечу, если программа, с которой снимают скриншот, использует вывод через OpenGL ES 3D, то изображение получается с искажениями.

Image()

class graphics.Image
static Image.new(size[, mode='RGB16'])
Parameters
  • size (tuple(x, y)) – размер нового изображения

  • mode

    цветовая глубина

    • ’1’ - черно-белое изображения (1 бит на пиксель);

    • ’L’ - 256 оттенков цвета (8 бит на пиксель);

    • ’RGB12’ - 4096 оттенков цвета (12 бит на пиксель);

    • ’RGB16’ - 65536 оттенков цвета (16 бит на пиксель);

    • ’RGB’ - 16.7 миллионов оттенков цвета (24 бит на пиксель).

Возвращает объект Image

static Image.open(filename)
Parameters

filename – путь к изображению

Открывает графический файл (форматы JPG и PNG) и возвращает в виде объекта Image.

static Image.inspect(filename)
Parameters

filename – путь к изображению

Возвращает словарь, элемент которого с ключом «size» содержит кортеж - длина и высота изображения

Image.load(filename[, callback=None])

Открывает изображение и заменяет им существующее изображение (их размеры должны быть одинаковы).

Image.resize(newsize[, callback=None, keepaspect=0])
Parameters
  • newsize (tuple(x, y)) – новый размер

  • calback – функция обработчик

  • keepaspect – 0|1 сохранять пропорции

Изменяет размер изображения

Image.transpose(direction[, callback=None])
Parameters

direction

тип операции

  • graphics.FLIP_LEFT_RIGHT - переворачивает слева направо;

  • graphics.FLIP_TOP_BOTTOM - переворачивает снизу вверх;

  • graphics.ROTATE_90 - поворачивает на 90 градусов по часовой стрелке;

  • graphics.ROTATE_180 - поворачивает на 180 градусов;

  • graphics.ROTATE_270 - поворачивает на 270 градусов.

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

Image.save(filename[, callback=None, format=None, quality=75, bpp=24, compression='default'])
Parameters
  • filename – путь к файлу

  • calback – обработчик

  • format ('JPG', 'PNG') – формат изображения

  • qualite – качество (0…100) hpeg

  • bpp – битность (1, 8, 24) png

  • compression – сжатие * ‘default’ - по умолчанию (компромисс между скоростью и качеством сжатия); * ‘best’ - максимальное сжатие, но медленная скорость; * ‘fast’ - быстро, но компрессия слабая; * ‘no’ - без сжатия (файл получается большим, но зато абсолютно без артефактов присущих формату JPG).

Сохраняет изображение Image в графическом файле filename.

Image.stop()

Указывает прервать выполнение асинхронных функций resize(), transpose(), load() и save(). Дело вот в чем, если при вызове этих функций не указан аргумент callback, то они становятся синхронными. Т.е. они прерывают выполнение программы до тех пор, пока операция не будет завершена (загрузка большого файла, например, может быть длительной по времени, и программа даже может «подвиснуть»). А вот если мы указали callback (имя функции), то resize(), transpose(), load() и save() становятся асинхронными. Т.е. они не прерывают выполнение программы, и работа идет дальше, но после завершения процессов (например, сохранение) сразу вызывается функция callback. Так вот stop и указывать прервать все эти процессы досрочно.

Image.size

Кортеж, первый элемент которого указывает длину изображения, второй - его ширину.

Image.twipsize

Кортеж, первый элемент которого указывает длину изображения, второй - его ширину в твипсах

Методы рисования примитивов

При рисовании цвета могут указываться как число в шестнадцатеричном представлении (0xRRGGBB), так и как кортеж из 3 чисел, каждый из которых отвечает за одну составляющую цвета - (red, green, blue). Диапазон чисел от 0 до 255.

Image.arc(rect, start, end[, outline = 0xffffff[, width = 1]])
Parameters
  • rect ((x1, y1, x2, y2)) – вписываемый прямоугольник

  • start – начальный угол сектора

  • end – конечный угол сектора

  • outline – цвет контура

  • width – размер контура

Рисует дугу вырезанную из эллипса, вписанного в прямоугольник с углами в точках x1, y1 и x2, y2, имеющего контур шириной width и цветом outline. Аргументы start и end указывают начальный и конечный угол сектора.

Image.blit(image[, target = (0, 0)[, source = ((0, 0), image.size)[, mask = None[, scale = 0]]]])
Parameters
  • image – копируемое изображение

  • target – смещение относительно (0, 0)

  • source – определенная область источника

  • mask – маска для копируемого изображения, черно-белое изображение, размер которого совпадает с размером копируемого участка и указывает, какие пиксели выводить, а какие нет;

  • scale – масштабирование (использование этого атрибута замедляет выполнение операции).

Копирует изображение на оригинальное изображение

Image.clear([color = 0xffffff])

Заполняет изображение определенным цветом

Image.ellipse(rect[, outline = 0xffffff[, fill = 0[, width = 1]]])
Parameters
  • rect ((x1, y1, x2, y2)) – вписываемый прямоугольник

  • outline – цвет контура

  • fill – цвет заливки

  • width – размер контура

Рисует эллипс, вписанный в прямоугольник.

Image.line(pos[, outline = 0xffffff[, width = 1]])
Parameters
  • pos ((x1, y1, x2, y2)) – координаты

  • outline – цвет контура

  • width – размер контура

Рисует линию

Image.measure_text(text[, font=None[, maxwidth = -1[, maxadvance = -1]]])
Parameters
  • text – рисуемый текст

  • font – шрифт текста

  • maxwidth – максимальная ширина изображения

  • maxadvance – максимальная высота курсора.

Определяет тот размер изображения, в котором уместится нарисованный шрифтом текст. Возвращает кортеж из трех элементов:
  • (topleft - x, topleft - y, bottomright - x, bottomright - y) - прямоугольник, ограничивающий текст;

  • число пикселей для графического курсора;

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

Image.pieslice(rect, start, end[, outline = 0xffffff[, fill = 0[, width = 1]]])
Parameters
  • rect ((x1, y1, x2, y2)) – вписываемый прямоугольник

  • start – начальный угол сектора. Углы отчитываются от правой полуоси и измеряются в радианах (0 - правый, pi/2 -верх, pi - левый, 2*pi/3 - низ)

  • end – конечный угол сектора

  • outline – цвет контура

  • fill – цвет заливки

  • width – размер контура

Рисует сектор вырезанной из эллипса, вписанного в прямоугольник

Image.point(pos[, outline = 0xffffff[, width = 1]])
Parameters
  • pos ((x1, y1, x2, y2)) – вписываемый прямоугольник

  • outline – цвет контура

  • width – размер контура

Рисует точку.

Image.polygon(rect[, outline = 0xffffff[, fill = 0[, width = 1]]])
Parameters
  • rect ((x1, y1, x2, y2,.., xN, yN)) – координаты вершин

  • outline – цвет контура

  • fill – цвет заливки

  • width – размер контура

Рисует многоугольник

Image.rectangle(rect[, outline = 0xffffff[, fill = 0[, width = 1]]])
Parameters
  • rect ((x1, y1, x2, y2)) – координаты вершин

  • outline – цвет контура

  • fill – цвет заливки

  • width – размер контура

Рисует прямоугольник с противоположными углами в точках

Image.text(pos, text[, fill = 0xffffff[, font = None]])
Parameters
  • pos ((x1, y1)) – ккординаты вставки текста

  • text (unicode) – текст

  • fill – цвет текста

  • font

    шрифт, unicode строка (‘normal’, ‘dense’, ‘title’, ‘symbol’, ‘legend’, ‘annotation’) или кортеж (font, size[, style])

    • font - имя шрифта, None - по умолчанию

    • size - размер шрифта, None - по умолчанию

    • style - стиль шрифта

      • graphics.FONT_BOLD(жирный);

      • graphics.FONT_ITALIC(наклоненный);

      • graphics.FONT_SUBSCRIPT(подстрочный);

      • graphics.FONT_SUPERSCRIPT(надстрочный);

      • graphics.FONT_ANTIALIAS (со сглаживанием)

      • graphics.FONT_NO_ANTIALIAS(без сглаживания);