Python Imaging Library

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Python Imaging Library
Тип Библиотека для обработки изображений
Автор Fredrik Lundh
Разработчик Secret Labs AB
Написана на Python, Си
Дата выпуска 1995; 31 год назад (1995)[1]
Последняя версия 1.1.7 (15 ноября 2009; 16 лет назад (2009-11-15)[2])
Тестовая версия 1.2a0[3] (2011; 15 лет назад (2011))
Лицензия Historical Permission Notice and Disclaimer[1]
Сайт python-pillow.github.io
Логотип Викисклада Медиафайлы на Викискладе
Pillow
Тип Библиотека для обработки изображений
Автор Jeffrey A. Clark (Alex)
Написана на Python, Си
Дата выпуска 31 июля 2010; 15 лет назад (2010-07-31)[1]
Последняя версия 11.1.0 (2 января 2025; 13 месяцев назад (2025-01-02)[4])
Лицензия Historical Permission Notice and Disclaimer[1]
Сайт python-pillow.github.io
Логотип Викисклада Медиафайлы на Викискладе

Python Imaging Library (сокращенно PIL) — библиотека языка Python (версии 2), предназначенная для работы с растровой графикой.

Разработка библиотеки прекращена (последняя правка датируется 2011 годом).[5] Однако проект под названием Pillow[вд], являющийся форком PIL, развивается и включает, в том числе, поддержку Python 3.x.[6] Этот форк был принят в качестве замены оригинальной библиотеки и включён в некоторые дистрибутивы Linux, включая Debian[7] и Ubuntu13.04).[8]

Возможности библиотеки

[править | править код]
  • поддержка бинарных, полутоновых, индексированных, полноцветных и CMYK изображений;
  • поддержка форматов BMP, EPS, GIF, JPEG, PDF, PNG, PNM, TIFF и некоторых других на чтение и запись;
  • поддержка множества форматов (ICO, MPEG, PCX, PSD, WMF и др.) только для чтения;
  • преобразование изображений из одного формата в другой;
  • правка изображений (использование различных фильтров, масштабирование, рисование, матричные операции и т. д.);
  • использование библиотеки из Tkinter и PyQt.

Требует наличия библиотек zlib (для PNG), libjpeg, freetype2 (для OpenType/TrueType).

Надпись на цветном фоне, результат

Надпись на цветном фоне можно создать с помощью метода text объекта-изображения. В следующем примере надпись наносится на вновь созданное изображение размером 100 на 50 пикселей:

from PIL import Image, ImageDraw
text = "Hello, PIL!!!"
color = (0, 0, 120)
img = Image.new('RGB', (100, 50), color)
imgDrawer = ImageDraw.Draw(img)
imgDrawer.text((10, 20), text)
img.save("pil-basic-example.png")

Следующий пример конвертирует файлы формата JPEG в формат PNG:

import os
from PIL import Image


def convert_jpegs_to_pngs(folder_path):
    # Проверяет, является ли указанный путь папкой
    if not os.path.isdir(folder_path):
        print(f"Error: {folder_path} is not a valid folder.")
        return

    # Перебирает все файлы в папке
    for filename in os.listdir(folder_path):
        # Проверяет, имеет ли файл расширение .jpg или .jpeg
        if filename.lower().endswith(".jpg") or filename.lower().endswith(".jpeg"):
            # Полный путь к файлу
            jpeg_path = os.path.join(folder_path, filename)
            # Путь к преобразованному файлу
            png_path = os.path.join(folder_path, os.path.splitext(filename)[0] + ".png")

            try:
                # Открывает изображение JPEG
                with Image.open(jpeg_path) as img:
                    # Преобразует и сохраняет как PNG
                    img.save(png_path, "PNG")
                    print(f"Converted {jpeg_path} to {png_path}")
            except Exception as e:
                print(f"Error converting {jpeg_path}: {e}")

Литература

[править | править код]
  • Ninad Sathaye. Python Multimedia. — Packt, 2010. — 292 с. — ISBN 9781849510165.

Примечания

[править | править код]
  1. 1 2 3 4 Software License. Secret Labs AB. Дата обращения: 8 декабря 2013. Архивировано 20 июля 2020 года.
  2. Python Imaging Library. Secret Labs AB. Дата обращения: 8 декабря 2013. Архивировано 21 ноября 2020 года.
  3. effbot / pil-2009-raclette. Дата обращения: 8 декабря 2013. Архивировано 15 марта 2015 года.
  4. Release Notes. Pillow (PIL Fork) Documentation. Дата обращения: 5 февраля 2025.
  5. effbot / pil-2009-raclette. Дата обращения: 8 декабря 2013. Архивировано из оригинала 15 марта 2015 года.
  6. Pillow: a modern fork of PIL. Дата обращения: 8 декабря 2013. Архивировано 27 апреля 2016 года.
  7. Details of package python-imaging in sid. packages.debian.org. Software in the Public Interest. Дата обращения: 8 декабря 2013. Архивировано 11 декабря 2013 года.
  8. Details of package python-imaging in raring. ubuntu.com. Canonical Ltd.. Дата обращения: 8 декабря 2013. Архивировано 14 декабря 2013 года.