и упражнение для вас! Если вы хотите этим заняться, поищите информацию о про-
зрачности (transparency) и альфа-канале (alpha channel) в руководстве в Pillow
(http://bit.ly/pil-fork).
ImageMagick
ImageMagick (http://www.imagemagick.org/) — это комплект программ для кон-
вертирования, изменения и отображения двухмерных изображений. Он суще-
ствует более 20 лет. Различные библиотеки Python подключены к библиотеке
ImageMagick, написанной на С. Самая недавняя из них, поддерживающая Python 3,
называется wand (http://docs.wand-py.org/). Для того чтобы установить ее, введите
следующую команду:
$ pip install Wand
С помощью wand вы можете делать примерно то же, что и с помощью Pillow:
>>> from wand.image import Image
>>> from wand.display import display
>>>
>>> img = Image(filename='oreilly.png')
>>> img.size
(154, 141)
>>> img.format
'PNG'
Как и в случае с Pillow, эта строка отобразит изображение на экране:
>>> display(img)
wand позволяет вам поворачивать изображение, изменять его размер, писать
текст, рисовать линии и многое другое, что вы можете найти и в Pillow. Оба этих
пакета имеют хорошие API и документацию.
Графические пользовательские
интерфейсы (Graphical User
Interface, GUI)
Название содержит слово «графический», но GUI концентрируется скорее на поль-
зовательском интерфейсе: виджетах для представления данных, методах ввода,
меню, кнопках и окнах.
Страница «Википедии» GUI programming (http://bit.ly/gui-program) и список часто
задаваемых вопросов (http://bit.ly/gui-faq) содержат множество примеров GUI, соз-
данных с помощью Python. Начнем с единственного встроенного в стандартную
Графические пользовательские интерфейсы (Graphical User Interface, GUI)
387
библиотеку примера — Tkinter (https://wiki.python.org/moin/TkInter). Он прост, но
работает на всех платформах и создает естественно выглядящие окна и виджеты.
Рассмотрим небольшую программу, где используется Tkinter, она отображает
наш любимый талисман в отдельном окне:
>>> import tkinter
>>> from PIL import Image, ImageTk
>>>
>>> main = tkinter.Tk()
>>> img = Image.open('oreilly.png')
>>> tkimg = ImageTk.PhotoImage(img)
>>> tkinter.Label(main, image=tkimg).pack()
>>> main.mainloop()