то новое.
2D-графика
Все языки программирования в какой-то степени работают с компьютерной гра-
фикой. Многие мощные платформы в этом приложении для быстродействия были
написаны на С или С++, но для продуктивности добавлены библиотеки Python.
Начнем с рассмотрения некоторых библиотек для работы с двухмерными изо-
бражениями.
Стандартная библиотека
В стандартной библиотеке содержатся всего несколько модулей, связанных с гра-
фикой. Рассмотрим два из них:
Imghdr. Этот модуль определяет тип некоторых файлов изображений;
Colorsys. Этот модуль преобразует цвета между разными системами: RGB, YIQ,
HSV и HLS.
2D-графика
383
Если вы загрузили логотип издательства O’Reilly и сохранили его под именем
oreilly.png, можете запустить этот код:
>>> import imghdr
>>> imghdr.what('oreilly.png')
'png'
Чтобы сделать с графикой в Python что-то серьезное, нужно загрузить сторон-
ние пакеты. Давайте их рассмотрим.
PIL и Pillow
Многие годы Python Image Library (PIL, библиотека изображений Python) (http://
bit.ly/py-image), несмотря на то что ее нет в стандартной библиотеке, является самой
известной библиотекой для обработки двухмерных изображений. Она предше-
ствовала установщикам вроде pip, поэтому был создан «дружественный форк»
с названием Pillow (http://pillow.readthedocs.org/). Код для работы с изображениями
Pillow совместим с кодом PIL, а его документация хороша, поэтому используем его
здесь.
Установить его просто — достаточно ввести следующую команду:
$ pip install Pillow
Если вы уже устанавливали пакеты libjpeg, libfreetype и zlib, они будут обна-
ружены и использованы Pillow. На странице с инструкциями по установке (http://
bit.ly/pillow-install) вы узнаете больше.
Откроем файл изображения:
>>> from PIL import Image
>>> img = Image.open('oreilly.png')
>>> img.format
'PNG'
>>> img.size
(154, 141)
>>> img.mode
'RGB'
Несмотря на то что пакет называется Pillow, вы импортируете его как PIL, чтобы
код был совместим со старым PIL.
Для того чтобы отобразить изображение на экране с помощью метода show()
объекта Image, вы сначала должны установить пакет ImageMagick, описанный в сле-
дующем разделе, а затем попробовать вот что: