Edição Automatizada de Imagens com Python

Ana Maria Gomes
5 minutos de leitura

Conteúdos do tutorial

A edição de imagens é uma tarefa comum em diversos campos, desde o design gráfico até a análise de dados. Com o avanço da programação, é possível automatizar muitos desses processos utilizando Python. Neste tutorial, vamos explorar como realizar edição automatizada de imagens com Python, utilizando a biblioteca Pillow e outras ferramentas poderosas.

Introdução à Biblioteca Pillow

Pillow é uma biblioteca de manipulação de imagens para Python que adiciona suporte para abrir, manipular e salvar muitos formatos de arquivo diferentes. É uma extensão do PIL (Python Imaging Library) e é considerada a biblioteca de imagens padrão para Python.

Instalação do Pillow

Para começar a trabalhar com Pillow, primeiro precisamos instalá-la. Abra o terminal e execute o seguinte comando:

pip install Pillow

Métodos Básicos do Pillow

Vamos explorar alguns métodos básicos fornecidos pelo Pillow para edição de imagens.

Abrindo e Salvando Imagens

Para abrir uma imagem, utilizamos o método open e para salvar, o método save.

from PIL import Image

# Abrindo uma imagem
imagem = Image.open('caminho/para/sua/imagem.jpg')

# Salvando a imagem editada
imagem.save('caminho/para/imagem/editada.jpg')

Redimensionando Imagens

Para redimensionar imagens, usamos o método resize.

nova_dimensao = (800, 600)
imagem_redimensionada = imagem.resize(nova_dimensao)

Girando e Transpondo Imagens

Podemos girar imagens com o método rotate e transpor com transpose.

# Girando a imagem em 90 graus
imagem_girada = imagem.rotate(90)

# Transpondo a imagem
imagem_transposta = imagem.transpose(Image.FLIP_LEFT_RIGHT)

Trabalhando com Cores

Pillow permite converter imagens para escala de cinza ou aplicar filtros de cores.

# Convertendo para escala de cinza
imagem_cinza = imagem.convert('L')

Criando Thumbnails

Pillow pode criar thumbnails de imagens, o que é útil para visualizações rápidas.

tamanho_thumbnail = (100, 100)
imagem.thumbnail(tamanho_thumbnail)

Projetos de Edição de Imagens com Pillow

Agora que conhecemos os métodos básicos, vamos aplicá-los em alguns projetos práticos.

Projeto 1: Comprimindo Imagens

Podemos reduzir o tamanho das imagens alterando suas dimensões e qualidade de salvamento.

from PIL import Image

def comprimir_imagem(caminho_imagem, fator_reducao, qualidade):
    imagem = Image.open(caminho_imagem)
    largura, altura = imagem.size
    nova_largura = int(largura * fator_reducao)
    nova_altura = int(altura * fator_reducao)
    imagem_reduzida = imagem.resize((nova_largura, nova_altura))
    imagem_reduzida.save('imagem_comprimida.jpg', quality=qualidade)

comprimir_imagem('caminho/para/imagem.jpg', 0.5, 85)

Projeto 2: Convertendo Imagens para Preto e Branco

Para converter uma série de imagens para preto e branco, podemos iterar sobre elas e aplicar a conversão.

import os
from PIL import Image

pasta_imagens = 'caminho/para/pasta/com/imagens'
imagens = [arquivo for arquivo in os.listdir(pasta_imagens) if arquivo.endswith('.jpg')]

for imagem in imagens:
    img = Image.open(os.path.join(pasta_imagens, imagem))
    img_cinza = img.convert('L')
    img_cinza.save(os.path.join(pasta_imagens, 'preto_branco', imagem))

Projeto 3: Adicionando Marca d’Água

Podemos adicionar uma marca d’água em uma imagem posicionando outra imagem sobre ela.

from PIL import Image

def adicionar_marca_dagua(imagem_fundo, imagem_marca_dagua, posicao):
    fundo = Image.open(imagem_fundo)
    marca_dagua = Image.open(imagem_marca_dagua)
    fundo.paste(marca_dagua, posicao, marca_dagua)
    fundo.save('imagem_com_marca_dagua.jpg')

adicionar_marca_dagua('imagem.jpg', 'marca_dagua.png', (50, 50))

Conclusão

A edição automatizada de imagens com Python é uma habilidade valiosa que pode economizar tempo e recursos. Com a biblioteca Pillow, temos acesso a uma ampla gama de ferramentas para manipular imagens de maneira eficiente. Experimente os métodos e projetos apresentados e explore ainda mais o que o Pillow pode oferecer!

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse: