Быстрый в изучении - мощный в программировании
Скрипт ИНВЕСТОР на Python

Попробуйте себя в качестве инвестора имея в помощники мощный алгоритм советника на Python...

Все уроки по PyQt5

PyQt5 реализован как комплект Python-модулей. Он включает в себя около 620 классов и 6000 функций и методов...

Скрипт отправки SMS через Python

Была задача отправить SMS-ки большому списку номеров телефона с уточнением цены за всю рассылку "До" ее отправки...

Библиотека PIL. Работа с изображениями в Python

Работа с изображениями в Python

Для работы с изображениями в Python наиболее часто используют библиотеку PIL (Python Image Library). В этой статье рассмотрим базовые возможности данной библиотеки, применяемые наиболее часто. Для установки библиотеки скачивайте файл PIL-1.2.6.win32-py2.6.exe с официального сайта библиотеки а затем запускайте уже знакомую для вас установку. Процесс установки очень прост и в комментариях не нуждается. Чтобы проверить работоспособность библиотеки и узнать удачно ли она установилась, в окне Python Shell редактора IDLE наберите следующий код.

>>> from PIL import Image
>>> Image.VERSION
'1.1.6'

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

Уже более пяти лет мы продаем подарочную упаковку оптом. Вы можете купить упаковка подарочная по очень хорошим ценам. В каталоге вы найдете сотни видов подарочной упаковки.

Загрузка готового изображения

Для открытия файла с готовым изображением применяется функция open(). Функция возвращает объект, с помощью которого производится дальнейшая работа с изображением. Если открыть файл с изображением не удалось, возбуждается исключение IOError. Формат функции:

open(<Путь или файловый объект>[, mode='r'])

В первом параметре можно указать абсолютный путь или относительный путь к изображению. Откроем файл Forest-large.jpg, который расположен в том же рабочем каталоге, что и сам скрипт.

>>> img = Image.open("Forest-large.jpg")

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

>>> f = open("foto.gif", "rb") # Открываем файл в бинарном режиме
>>> img = Image.open(f)        # Передаем объект файла
>>> img.size                   # Получаем размер изображения
(800, 600)
>>> f.close()                  # Закрываем файл

Если изображение было загружено в какую-либо переменную, то можно создать файловый объект с помощью модуля StringIO и передать его в функцию open(). Язык программирования Python имеет много интересных библиотек для работы с видео, музыкой и обработка профессиональных фотографии. Работая над длинной программой код будет удлинятся все глубже и на маленьком экране ноутбука неудобно писать длинные программы. Чтобы расширить свою зону видимости кода нужно подключить второй монитор к ноутбуку и работать уже на широком 22 дюймовом мониторе. Тогда при редактировании видео и изображении на Python ваш результат будет лучше анализированным визуально на широком мониторе чем на ноутбуке.

Загрузка изображения из строки

>>> f = open("foto.gif", "rb") # Открываем файл в бинарном режиме
>>> i = f.read()               # Сохраняем изображение в переменной
>>> f.close()                  # Закрываем файл
>>> import StringIO            # Подключаем модуль StringIO
>>> img = Image.open(StringIO.StringIO(i)) # Передаем объект
>>> img.format                 # Выводим формат изображения
'GIF'

Как видно из примера, формат изображения определяется автоматически. Следует также заметить, что после открытия файла с помощью функции open() само изображение не загружается сразу в память из файла. Загрузка изображения производится при первой операции с изображением. Загрузить изображение явным образом позволяет метод load(). Хотя в большинстве случаев это делать не нужно. Начиная с версии 1.1.6 метод load() возвращает объект, с помощью которого можно получить доступ к определенным пикселям изображения.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru yandex.ru
Комментариев: 4
  1. Уже давно доступна библиотека PIL версии 1.1.7, большой разнице нет но все равно лучше работать с последними версиями библиотек. Фиксы багов уже более менее учтены.

  2. Как подключить PIL к Python 3.3? Существующие версии предназначены только для Python 2.7 и младше.

  3. артурич | 2014-04-05 в 11:45:39

    можно, вот

    http://www.lfd.uci.edu/~gohlke/pythonlibs/#pilow

  4. Григорий Журавлев | 2014-08-27 в 14:39:14

    Есть двумерный массив, как из него сделать изображение?

Оставьте комментарий!

Используйте нормальные имена.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

(обязательно)