CodeGym /Cursos /Python SELF PT /Corte e rotação de imagens para preparação de conteúdo

Corte e rotação de imagens para preparação de conteúdo

Python SELF PT
Nível 45 , Lição 2
Disponível

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

  1. 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.
  2. 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.
  3. 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")
        
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION