Как преобразовать формат файла изображения с помощью Python
Python известен своей универсальностью. Вы можете создавать на Python реальные служебные инструменты, которые упрощают и автоматизируют определенные задачи.
Установка необходимых библиотек
Вам необходимо установить библиотеку Pillow Python, чтобы создать конвертер типов изображений в Python. Эта библиотека расширяет возможности обработки изображений вашего интерпретатора Python.
Вы можете создать общий инструмент обработки изображений, используя несколько модулей этой библиотеки. Некоторые из наиболее полезных модулей — Image , ImageFile , ImageFilter и ImageStat .
Выполните следующую команду в терминале, чтобы установить библиотеку Pillow Python:
pip install pillow
Загрузка и отображение свойств изображения
Сначала вам нужно импортировать модуль изображения из библиотеки PIL, чтобы настроить код. Затем вам нужно использовать метод Image.open(), чтобы загрузить изображение и присвоить его переменной. После того, как вы загрузили изображение, вы можете отобразить его с помощью метода show().
Код преобразователя формата изображения доступен в репозитории GitHub и может использоваться бесплатно по лицензии MIT.
from PIL import Image
image = Image.open(‘sample-image.jpg’)
image.show()
Изображение, которое вы передали в качестве параметра методу open(), откроется после выполнения кода. Это хороший первый шаг в качестве проверки работоспособности, чтобы убедиться, что вы успешно установили библиотеку в своей системе.
Модуль Image предоставляет несколько других свойств, которые можно использовать для получения дополнительной информации об изображении.
# Importing library
from PIL import Image
# Loading the image
image = Image.open(‘sample-image.jpg‘)
# Prints the name of the file
print(«Filename: «, image.filename)
# Prints the format of the file
# Eg- PNG, JPG, GIF, etc.
print(«Format: «, image.format)
# Prints the mode of the file
# Eg- RGB, RFBA, CMYK, etc.
print(«Mode: «, image.mode)
# Prints the size as a width and height tuple (in pixels)
print(«Size: «, image.size)
# Prints the width of the image (in pixels)
print(«Width: «, image.width)
# Prints the height of the image (in pixels)
print(«Height: «, image.height)
# Closing the image
image.close()
Вы должны увидеть некоторые значимые данные без ошибок:
Как преобразовать формат изображения с помощью Python
Вы можете просто преобразовать формат файла изображения, используя метод save(). Вам просто нужно передать новое имя файла и расширение в качестве параметра метода save().
Метод save() автоматически определит переданное вами расширение, а затем сохранит изображение в указанном формате. Но перед использованием метода save() может потребоваться указать режим изображения (RGB, RGBA, CMYK, HSV и т. д.).
RGB (3×8-битных пикселей, истинный цвет)
RGBA (4×8-битных пикселей, истинный цвет с маской прозрачности)
CMYK (4×8-битных пикселей, цветоделение)
HSV (пиксели 3×8 бит, оттенок, насыщенность, цветовое пространство значений)
Как преобразовать изображение из PNG в JPG и JPG в PNG
Вам необходимо передать строку filename.jpg в качестве параметра методу save() для преобразования файлов изображений любого формата (PNG, GIF, BMP, TIFF и т. д.) в формат JPG.
Также вам необходимо указать режим изображения. Следующий код преобразует изображение из формата PNG в формат JPG:
# Importing Library
from PIL import Image
# Loading the image
image = Image.open(‘sample-png-image.png‘)
# Specifying the RGB mode to the image
image = image.convert(‘RGB‘)
# Converting an image from PNG to JPG format
image.save(«converted-jpg-image.jpg«)
print(«Image successfully converted!«
Вы потеряете всю прозрачность изображения, если конвертируете его в формат JPG. Если вы попытаетесь сохранить прозрачность в режиме RGBA, Python выдаст ошибку.
Вы можете преобразовать изображение любого формата в формат PNG, используя метод save(). Вам просто нужно передать изображение PNG в качестве параметра в метод save(). Следующий код преобразует изображение из формата JPG в формат PNG:
# Importing Library
from PIL import Image
# Loading the image
image = Image.open(‘sample-jpg-image.jpg‘)
# Converting image from JPG to PNG format
image.save(«converted-png-image.png«)
print(«Image successfully converted!«)
Преобразование изображения в PNG сохраняет прозрачность. Например, если вы преобразуете прозрачное изображение GIF в изображение PNG, результатом все равно будет прозрачное изображение.
Как преобразовать изображение в любой другой формат с помощью Python
Подобно шагам выше, вы можете преобразовать изображение любого формата в любой другой формат, используя метод save().
Вам просто нужно указать правильное расширение изображения (.webp, .png, .bmp и т. д.) для метода save(). Например, следующий код преобразует изображение из формата PNG в формат WebP:
# Importing Library
from PIL import Image
# Loading the image
image = Image.open(‘sample-transparent-png-image.png‘)
# Converting an image from PNG to WEBP format
image.save(«converted-webp-image.webp«)
print(«Image successfully converted!«)
Обработка ошибок для отсутствующих файлов изображений
Если код не сможет найти входное изображение, он выдаст ошибку. Вы можете справиться с этим, используя исключение FileNotFoundError Python.
# Importing Library
from PIL import Image
try:
# Loading the image
image = Image.open(‘wrong-filename.jpg‘)
# Converting image from JPG to PNG format
image.save(«converted-png-image.png«)
print(«Image successfully converted!«)
except FileNotFoundError:
print(«Couldn‘t find the provided image«)
Преобразование всех изображений в каталоге в другой формат
Если в каталоге есть несколько файлов изображений, которые вы хотите преобразовать в другой формат, вы можете легко сделать это, написав всего несколько строк кода на Python.
Вам необходимо импортировать библиотеку glob для перебора файлов в текущем каталоге или внутри заданной папки. Следующий код преобразует все изображения JPG в текущем каталоге в формат PNG:
from PIL import Image
import glob
for file in glob.glob(«*.jpg«):
image = Image.open(file)
image.save(file.replace(«jpg«, «png«))
Если вы хотите преобразовать другой набор файлов, измените строковый параметр, который вы передаете методу glob().
Создайте графический интерфейс с помощью Python
Библиотеки Python, такие как Pillow, упрощают разработку инструментов для работы с изображениями в Python. Вы можете быстро выполнять задачи с помощью интерфейса командной строки, но графический интерфейс необходим для создания удобного интерфейса.
Вы можете создавать более специализированные приложения с графическим интерфейсом, используя фреймворки Python, такие как Tkinter и wxPython.
Источник: makeuseof.com





