Python Imaging Library (сокращенно PIL) — библиотека языка Python (версии 2), предназначенная для работы с растровой графикой.
Разработка библиотеки прекращена (последняя правка датируется 2011 годом). Однако проект под названием , являющийся форком PIL, развивается и включает, в том числе, поддержку Python 3.x. Этот форк был принят в качестве замены оригинальной библиотеки и включён в некоторые дистрибутивы Linux, включая Debian и Ubuntu (с 13.04).
Возможности библиотеки поддержка бинарных, полутоновых, индексированных, полноцветных и 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) + ".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}")
См. также ImageMagick
Литература
Примечания
Ссылки
Категория:Библиотеки Python Категория:Свободные библиотеки программ Категория:Свободное графическое программное обеспечение Категория:Статьи с примерами кода Python Категория:Библиотеки растровой графики Категория:Программы, разработка которых прекращена