Como desenhar formas em uma imagem com Pillow?

Oct 28, 2025

Deixe um recado

Ei! Como fornecedor de travesseiros, não gosto apenas de vender travesseiros de primeira linha, comoTravesseiro de cama cheio de fibra oca de hotel 100% macio premium de poliéster,Travesseiro de fibra 100% poliéster de alta qualidade para hotel, eTravesseiro de penas de ganso branco de alta qualidade para hotel. Também tenho um pouco de habilidade com processamento de imagens. Hoje vou compartilhar com vocês como desenhar formas em uma imagem usando Pillow, uma biblioteca Python super útil.

O que é travesseiro?

Primeiramente, vamos falar sobre o que é Pillow. Pillow é um fork da Python Imaging Library (PIL). É fácil de usar e oferece vários recursos para abrir, manipular e salvar diferentes formatos de arquivo de imagem. Quer você seja um hobby que deseja adicionar alguns efeitos interessantes às fotos das suas férias ou um designer profissional trabalhando em um projeto, o Pillow pode ser seu melhor amigo.

Instalando travesseiro

Antes de começarmos a desenhar formas, precisamos instalar o Pillow. Se você estiver usando pip (que é a forma mais comum de instalar pacotes Python), basta abrir seu prompt de comando ou terminal e digitar:

almofada de instalação pip

É isso! Em nenhum momento, você terá o travesseiro pronto para usar.

Desenhando formas básicas

Vamos começar com o básico. Desenharemos algumas formas simples em uma imagem. Primeiro precisamos importar os módulos necessários e abrir uma imagem.

de PIL import Image, ImageDraw # Abra uma imagem image = Image.open('your_image.jpg') draw = ImageDraw.Draw(image)

No código acima, primeiro importamos oImagemeImagemDrawaulas da biblioteca Pillow. Em seguida, abrimos um arquivo de imagem (você deve substituir'sua_imagem.jpg'com o caminho real para sua imagem). OImagemDraw.Draw()A função cria um objeto que podemos usar para desenhar na imagem.

Premium Soft 100% Polyester Hotel Hollow Fiber Filled Bed Pillow factoryPremium Soft 100% Polyester Hotel Hollow Fiber Filled Bed Pillow manufacturers

Desenhando uma linha

Desenhar uma linha é super fácil. Você só precisa especificar os pontos inicial e final da linha, junto com a cor e a largura.

# Desenha uma linha draw.line((100, 100, 200, 200), fill='red', width=2)

Neste exemplo, a linha começa no ponto(100, 100)e termina em(200, 200). A linha é vermelha e tem largura de 2 pixels.

Desenhando um retângulo

A seguir, vamos desenhar um retângulo. Você precisa especificar os cantos superior esquerdo e inferior direito do retângulo.

# Desenha um retângulo draw.rectangle((300, 300, 400, 400), Outline='blue', width=2)

Aqui, o retângulo tem seu canto superior esquerdo em(300, 300)e seu canto inferior direito em(400, 400). O contorno do retângulo é azul e tem largura de 2 pixels.

Desenhando uma elipse

Desenhar uma elipse também é simples. Você especifica a caixa delimitadora da elipse (o retângulo que a envolveria).

# Desenha uma elipse draw.ellipse((500, 500, 600, 600), fill='green')

Neste caso, a elipse é preenchida com a cor verde e delimitada por um retângulo com canto superior esquerdo(500, 500)e inferior - canto direito(600, 600).

Desenhando com mais controle

Às vezes, você pode querer ter mais controle sobre a aparência de suas formas. Por exemplo, você pode querer desenhar uma forma com preenchimento gradiente ou contorno tracejado.

Preenchimento gradiente

Para criar um preenchimento gradiente, podemos usar um loop para desenhar múltiplas linhas com cores diferentes. Aqui está um exemplo de criação de um preenchimento gradiente vertical para um retângulo:

from PIL import Image, ImageDraw image = Image.open('your_image.jpg') draw = ImageDraw.Draw(image) # Desenha um retângulo com preenchimento gradiente vertical start_color = (255, 0, 0) # Vermelho end_color = (0, 0, 255) # Azul x1, y1, x2, y2 = 100, 100, 200, 200 altura = y2 - y1 para y no intervalo(y1, y2): r = int(start_color[0] + (end_color[0] - start_color[0]) * (y - y1) / altura) g = int(start_color[1] + (end_color[1] - start_color[1]) * (y - y1) / altura) b = int(start_color[2] + (end_color[2] - start_color[2]) * (y - y1) / altura) draw.line((x1, y, x2, y), fill=(r, g, b))

Neste código, primeiro definimos as cores inicial e final do gradiente. Em seguida, percorremos cada linha horizontal dentro do retângulo e calculamos a cor dessa linha com base em sua posição.

Contorno tracejado

Desenhar um contorno tracejado pode adicionar uma aparência única às suas formas. Podemos conseguir isso desenhando uma série de linhas curtas com espaços entre elas.

from PIL import Image, ImageDraw image = Image.open('your_image.jpg') draw = ImageDraw.Draw(image) # Desenhe um retângulo com contorno tracejado x1, y1, x2, y2 = 300, 300, 400, 400 dash_length = 5 gap_length = 3 para x no intervalo (x1, x2, dash_length + gap_length): desenhar.linha((x, y1, x + comprimento_dash, y1), fill='amarelo', largura=2) draw.line((x, y2, x + comprimento_dash, y2), fill='amarelo', largura=2) para y no intervalo(y1, y2, comprimento_dash + comprimento_gap): draw.line((x1, y, x1, y + comprimento_dash), fill='amarelo', largura=2) desenhar.linha((x2, y, x2, y + comprimento_dash), preenchimento='amarelo', largura=2)

Neste exemplo, definimos o comprimento dos traços e os espaços entre eles. Em seguida, percorremos as laterais do retângulo e desenhamos as linhas tracejadas.

Salvando a imagem modificada

Assim que terminarmos de desenhar as formas na imagem, precisamos salvá-la. É tão simples quanto:

imagem.save('imagem_modificada.jpg')

Basta substituir'imagem_modificada.jpg'com o nome que deseja dar à sua nova imagem.

Desenho de Forma Avançado

Abordamos o básico, mas o Pillow permite desenhos de formas muito mais avançados. Por exemplo, você pode desenhar polígonos com vários lados.

de PIL import Image, ImageDraw image = Image.open('your_image.jpg') draw = ImageDraw.Draw(image) # Desenha um polígono points = [(100, 100), (200, 150), (150, 250), (50, 200)] draw.polygon(points, fill='purple')

Neste código, definimos uma lista de pontos que compõem os vértices do polígono. Então usamos opolígono()método para desenhar o polígono e preenchê-lo com a cor roxa.

Conclusão

Desenhar formas em uma imagem com Pillow é divertido e fácil. Esteja você adicionando linhas e retângulos simples ou criando polígonos complexos com preenchimentos gradientes, o Pillow oferece o poder de transformar suas imagens de maneiras incríveis.

Se você está em busca de travesseiros de alta qualidade, não se esqueça de conferir nossos produtos comoTravesseiro de cama cheio de fibra oca de hotel 100% macio premium de poliéster,Travesseiro de fibra 100% poliéster de alta qualidade para hotel, eTravesseiro de penas de ganso branco de alta qualidade para hotel. Estamos sempre em busca de novos parceiros e clientes. Se você estiver interessado em comprar nossos travesseiros a granel, sinta-se à vontade para entrar em contato conosco para uma discussão sobre compras.

Referências

  • Documentação oficial do travesseiro
  • Documentação oficial do Python

Enviar inquérito