1. Corte de imagens
O conceito de corte e sua aplicação
Bora começar a aprender como cortar e girar imagens. Essa habilidade vai ser útil em vários projetos — desde a preparação de gráficos pra sites até a criação de conteúdo pras redes sociais.
Cortar uma imagem é tipo aparar as bordas desnecessárias de uma foto pra focar no objeto principal. Imagina que você tirou uma foto massa do pôr do sol, mas nas bordas ficaram curiosos aleatórios. O corte vai te ajudar a se livrar deles (virtualmente, claro) sem burocracia!
Método crop()
O método crop()
recebe as coordenadas de uma área retangular que você quer recortar da imagem. As coordenadas são especificadas como quatro valores:
(esquerda, superior, direita, inferior)
.
# Cortando a imagem
cropped_image = image.crop((100, 100, 400, 400))
# Salvando a imagem cortada
cropped_image.save("cropped_example.jpg")
Nesse exemplo, a imagem será cortada para a área com o canto superior esquerdo no ponto (100, 100)
e o canto inferior direito no ponto (400, 400)
. Esse método cria uma nova imagem da parte especificada da imagem original.
Corte dinâmico com base no tamanho da imagem
Se você quiser cortar a imagem central, pode calcular as coordenadas de corte com base no tamanho da imagem:
width, height = image.size
left = (width - 200) / 2
top = (height - 200) / 2
right = (width + 200) / 2
bottom = (height + 200) / 2
center_cropped_image = image.crop((left, top, right, bottom))
center_cropped_image.save("center_cropped_example.jpg")
Esse código corta a parte central da imagem com tamanho de 200x200 pixels. O cálculo das coordenadas garante que a área cortada fique centralizada na imagem.
2. Rotação da imagem
Rotacionar uma imagem permite mudar sua orientação, o que é super útil quando a foto foi tirada na orientação errada ou você quer criar um efeito artístico.
Método rotate()
O método rotate()
gira a imagem no ângulo especificado no sentido anti-horário. O ângulo é dado em graus, e o método cria uma nova imagem rotacionada.
# Rotacionando a imagem em 90 graus no sentido anti-horário
rotated_image = image.rotate(90)
rotated_image.save("rotated_90_example.jpg")
Nesse exemplo, a imagem será rotacionada em 90 graus no sentido anti-horário. Você pode também especificar outro ângulo de rotação (como 45, 180 ou 270 graus) pra alcançar o efeito desejado.
Controlando bordas brancas na rotação
Por padrão, o método rotate()
adiciona bordas brancas (ou transparentes, se usar o modo RGBA) nas extremidades da imagem pra preservar todo o conteúdo dela. Se quiser que a imagem preencha todo o quadro sem bordas, use o parâmetro expand=True
.
# Rotação com expansão da imagem pra preencher todo o quadro
rotated_expanded_image = image.rotate(45, expand=True)
rotated_expanded_image.save("rotated_expanded_example.jpg")
Nesse caso, o Pillow vai aumentar o tamanho da imagem pra caber todo o conteúdo, o que é útil em rotações com ângulos diferentes (como 45 graus).
3. Espelhamento da imagem
O espelhamento permite virar a imagem horizontalmente ou verticalmente. Isso é útil quando você precisa mudar a direção de um objeto na foto ou criar um efeito simétrico.
Método transpose()
O método transpose()
é usado pra espelhar a imagem e suporta os seguintes parâmetros:
Image.FLIP_LEFT_RIGHT
: Espelhamento horizontal.Image.FLIP_TOP_BOTTOM
: Espelhamento vertical.
# Espelhamento horizontal
flipped_horizontal = image.transpose(Image.FLIP_LEFT_RIGHT)
flipped_horizontal.save("flipped_horizontal_example.jpg")
# Espelhamento vertical
flipped_vertical = image.transpose(Image.FLIP_TOP_BOTTOM)
flipped_vertical.save("flipped_vertical_example.jpg")
Esses comandos viram a imagem horizontal e verticalmente, o que pode ser usado pra criar diferentes efeitos ou corrigir a orientação.
Exemplos práticos de corte, rotação e espelhamento
- Focar numa área específica da imagem: O corte permite destacar uma parte específica da imagem, o que é útil pra criar retratos, eliminar detalhes desnecessários e preparar imagens pra redes sociais ou sites.
- Corrigir a orientação da imagem: A rotação é usada pra corrigir a orientação de uma foto, especialmente quando o dispositivo capturou na posição errada. Um exemplo é corrigir uma foto tirada na orientação paisagem pra publicação no formato retrato.
- Criar efeitos simétricos: O espelhamento é frequentemente usado no design pra criar imagens simétricas, efeitos visuais interessantes e melhorar a composição.
4. Erros comuns e como evitá-los
Ao trabalhar com o Pillow, às vezes surgem erros que provavelmente todo iniciante enfrentará. Um desses erros é tentar cortar a imagem fora de suas dimensões reais. Sempre verifique o tamanho da imagem e defina as coordenadas de corte dentro desses limites.
Outro detalhe — ao rotacionar, a imagem pode parecer cortada se você usar o método `rotate` sem ajustes extras. Isso acontece por causa da mudança no tamanho da imagem durante a rotação. Pra evitar, use o parâmetro expand=True
, que ajusta automaticamente os tamanhos:
# Rotacionando a imagem em 45 graus com expansão pra evitar cortes nas bordas
rotated_image = image.rotate(45, expand=True)
rotated_image.save("rotated_expanded.jpg")
GO TO FULL VERSION