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; 17 месяцев назад (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 года.

Ссылки

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.