Введение
В этом практическом занятии вы научитесь создавать уменьшенные копии изображений (миниатюры) с использованием библиотеки Matplotlib в Python. Миниатюры — это уменьшенные версии изображений, которые можно использовать для отображения предварительного просмотра большего изображения. Matplotlib зависит от библиотеки Pillow для чтения изображений и поддерживает все форматы, поддерживаемые Pillow.
Советы по использованию ВМ
После запуска виртуальной машины щелкните в левом верхнем углу, чтобы переключиться на вкладку Ноутбук и получить доступ к Jupyter Notebook для практики.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Проверка операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы столкнетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Установка необходимых библиотек
Сначала вам необходимо установить необходимые библиотеки. Откройте терминал и введите следующие команды для установки Matplotlib и Pillow:
pip install matplotlib
pip install pillow
Импорт библиотек
В этом шаге вы импортируете библиотеки, которые вы установили на предыдущем шаге. Необходимо импортировать ArgumentParser и Path из модулей argparse и pathlib соответственно. Также импортируйте модули sys и image из модулей sys и matplotlib.image соответственно.
from argparse import ArgumentParser
from pathlib import Path
import sys
import matplotlib.image as image
Анализ аргументов
В этом шаге вы будете анализировать аргументы, переданные в вашу программу. Вам необходимо создать объект ArgumentParser и добавить аргумент с именем imagedir. Этот аргумент задает путь к директории, содержащей изображения. Вы можете использовать параметр type, чтобы указать тип данных аргумента. В этом случае аргумент должен быть типа Path.
parser = ArgumentParser(description="Build thumbnails of all images in a directory.")
parser.add_argument("imagedir", type=Path)
args = parser.parse_args()
Проверить директорию
В этом шаге вы проверите, существует ли указанная директория. Если директория не существует, вы выйдете из программы и выведете сообщение об ошибке.
if not args.imagedir.is_dir():
sys.exit(f"Could not find input directory {args.imagedir}")
Создать директорию для вывода
В этом шаге вы создадите директорию с именем thumbs, где будут сохранены уменьшенные изображения. Если директория уже существует, она не будет создана повторно.
outdir = Path("thumbs")
outdir.mkdir(parents=True, exist_ok=True)
Генерировать уменьшенные изображения
В этом шаге вы будете генерировать уменьшенные изображения для всех изображений в указанной директории. Вы будете использовать цикл for для перебора всех изображений с расширением .png в указанной директории. Для каждого изображения вы будете генерировать уменьшенное изображение и сохранять его в директории thumbs.
for path in args.imagedir.glob("*.png"):
outpath = outdir / path.name
fig = image.thumbnail(path, outpath, scale=0.15)
print(f"saved thumbnail of {path} to {outpath}")
Резюме
В этом практическом занятии вы узнали, как генерировать уменьшенные изображения из имеющихся изображений с использованием Matplotlib в Python. Вы узнали, как импортировать библиотеки, анализировать аргументы, проверять директории, создавать директории для вывода и генерировать уменьшенные изображения. Следуя шагам этого практического занятия, вы можете легко сгенерировать уменьшенные изображения для всех изображений в директории.