Introdução
Este laboratório irá guiá-lo através do processo de geração de miniaturas (thumbnails) a partir de imagens existentes, utilizando a biblioteca Matplotlib em Python. Miniaturas são versões menores de imagens que podem ser usadas para exibir uma pré-visualização da imagem maior. Matplotlib depende da biblioteca Pillow para ler imagens e suporta todos os formatos suportados por Pillow.
Dicas para a VM (Máquina Virtual)
Após a inicialização da VM ser concluída, clique no canto superior esquerdo para mudar para a aba Notebook para acessar o Jupyter Notebook para praticar.
Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.
Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.
Instalar as Bibliotecas Necessárias
Primeiramente, você precisa instalar as bibliotecas necessárias. Abra seu terminal e digite os seguintes comandos para instalar Matplotlib e Pillow:
pip install matplotlib
pip install pillow
Importar Bibliotecas
Nesta etapa, você importará as bibliotecas que instalou na etapa anterior. Você precisa importar ArgumentParser e Path dos módulos argparse e pathlib, respectivamente. Além disso, importe os módulos sys e image dos módulos sys e matplotlib.image, respectivamente.
from argparse import ArgumentParser
from pathlib import Path
import sys
import matplotlib.image as image
Analisar Argumentos
Nesta etapa, você analisará os argumentos passados para o seu programa. Você precisa criar um objeto ArgumentParser e adicionar um argumento chamado imagedir. Este argumento especifica o caminho para o diretório contendo as imagens. Você pode usar o parâmetro type para especificar o tipo de dado do argumento. Neste caso, o argumento deve ser do tipo Path.
parser = ArgumentParser(description="Build thumbnails of all images in a directory.")
parser.add_argument("imagedir", type=Path)
args = parser.parse_args()
Verificar Diretório
Nesta etapa, você verificará se o diretório especificado existe. Se o diretório não existir, você sairá do programa e imprimirá uma mensagem de erro.
if not args.imagedir.is_dir():
sys.exit(f"Could not find input directory {args.imagedir}")
Criar Diretório de Saída
Nesta etapa, você criará um diretório chamado thumbs onde as miniaturas serão salvas. Se o diretório já existir, ele não será criado novamente.
outdir = Path("thumbs")
outdir.mkdir(parents=True, exist_ok=True)
Gerar Miniaturas
Nesta etapa, você gerará miniaturas para todas as imagens no diretório especificado. Você usará um loop for para iterar sobre todas as imagens com a extensão .png no diretório especificado. Para cada imagem, você gerará uma miniatura e a salvará no diretório 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}")
Resumo
Neste laboratório, você aprendeu como gerar miniaturas a partir de imagens existentes usando Matplotlib em Python. Você aprendeu como importar bibliotecas, analisar argumentos, verificar diretórios, criar diretórios de saída e gerar miniaturas. Seguindo as etapas deste laboratório, você pode facilmente gerar miniaturas para todas as imagens em um diretório.