Основы PIL

osnovy pil Экскурсия по tkinter, часть 1

Чтобы воспользоваться инструментами из этого пакета, его сначала необходимо получить и установить: инструкции вы найдете на сайте http://www.pythonware.com (или поищите по строке «PIL», воспользовавшись поисковой системой). Затем нужно просто использовать особые объекты PhotoImage и BitmapImage, импортируемые из модуля ImageTk пакета PIL, чтобы открывать файлы в других графических форматах. Это совместимая замена для одноименных классов из библиотеки tkinter, которую можно использовать везде, где tkinter предполагает использование объекта PhotoImage или BitmapImage (то есть в настройках объектов меток, кнопок, холстов, текстовых виджетов и меню).

Это означает, что стандартный программный код, использующий tkinter, как показано ниже:

from tkinter import *

imgobj = PhotoImage(file=imgdir + “spam.gif”)

Button(image=imgobj).pack()

можно заменить таким программным кодом:

from tkinter import *

from PIL import ImageTk

photoimg = ImageTk.PhotoImage(file=imgdir + “spam.jpg”) Button(image=photoimg).pack()

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

from tkinter import *

from PIL import Image, ImageTk

imageobj = Image.open(imgdir + “spam.jpeg”)

photoimg = ImageTk.PhotoImage(imageobj)

Button(image=photoimg).pack()

В действительности, чтобы задействовать пакет PIL для отображения изображений, достаточно лишь установить его и добавить в сценарий единственную инструкцию from, импортирующую альтернативный класс PhotoImage после загрузки оригинальной версии из tkinter. Остальной программный код можно оставить без изменений, но он будет способен отображать графические изображения в форматах JPEG, PNG и других:

from tkinter import *

from PIL.ImageTk import PhotoImage # <== добавьте эту строку

imgobj = PhotoImage(file=imgdir + “spam.png”)

Button(image=imgobj).pack()

Особенности установки пакета PIL зависят от платформы. В Windows достаточно лишь загрузить и запустить самоустанавливающийся файл. В результате пакет PIL будет сохранен в каталоге установки Python Lib\sitepackages, а поскольку мастер установки автоматически добавит каталог пакета в путь поиска модулей, никаких дополнительных настроек путей не потребуется. Просто запустите мастер установки и затем импортируйте модули из пакета PIL. На других платформах вам может потребоваться распаковать загруженный архив с исходным программным кодом и добавить путь к каталогу пакета PIL в начало переменной окружения PYTHONPATH — за дополнительной информацией обращайтесь на веб-сайт проекта PIL. (При работе над этим изданием книги я использовал предварительную версию PIL для Python 3.1, но к моменту, когда вы будете читать эти строки, должна быть выпущена официальная версия пакета.)

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

Дополнительную информацию вы найдете на сайте http://www.pythonware.com, а также в комплекте электронной документации по PIL и tkinter. Однако, чтобы помочь вам начать, мы закроем эту главу несколькими интересными примерами использования пакета PIL для отображения и обработки изображений.

Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, I том, 2011

Оцените статью
Секреты программирования
Добавить комментарий