Travesseiro Python - Módulo ImageDraw
o ‘ImageDraw’módulo fornece suporte gráfico 2D simples para objeto de imagem. Geralmente, usamos este módulo para criar novas imagens, fazer anotações ou retocar imagens existentes e para gerar gráficos dinâmicos para uso na web.
Os comandos gráficos suportam o desenho de formas e anotações de texto.
Uma imagem pode ser bem pensada para ser uma matriz bidimensional de pixels (elementos de imagem). Um pixel é o menor ponto de cor suportado.
A origem do sistema de coordenadas bidimensional usado por ImageDraw, está no upper left corner da imagem.
O esquema de cores do travesseiro que usamos é RGB. A representação e suporte RGB de cores são fornecidos pelo móduloImageColor.
bitmap, OpenType ou TrueType são as fontes aceitáveis para anotações de texto.
A maioria dos comandos de desenho pode exigir um parâmetro de caixa delimitadora que especifica a área da imagem à qual o comando deve ser aplicado.
Uma sequência de coordenadas pode ser representada como [(x0, y0), (x1, y1),… (xn, yn)].
Para alguns comandos de desenho, exigimos valores de ângulo.
Exemplo
O exemplo de python a seguir desenha uma linha na imagem fornecida -
#Import required libraries
import sys
from PIL import Image, ImageDraw
#Create Image object
im = Image.open("images/logo.jpg")
#Draw line
draw = ImageDraw.Draw(im)
draw.line((0, 0) + im.size, fill=128)
draw.line((0, im.size[1], im.size[0], 0), fill=128)
#Show image
im.show()
Resultado
Se você salvar o programa acima como Example.py e executar, ele desenha uma linha na imagem e a exibe usando o utilitário de exibição PNG padrão, como segue -
Tela de pintura
Um ImageDraw é uma superfície drawable Pillow (ou seja, uma tela) de uma imagem.
ImageDraw.Draw (img) retorna uma representação de tela drawable do parâmetro Image img. O fundo da tela é a imagem "img".
Exemplo
O exemplo de python a seguir desenha texto na imagem fornecida -
#Import required modules from Pillow package
from PIL import Image, ImageDraw, ImageFont
# get an image
base = Image.open('images/boy.jpg').convert('RGBA')
# make a blank image for the text, initialized to transparent text color
txt = Image.new('RGBA', base.size, (255,255,255,0))
# get a font
fnt = ImageFont.truetype('E:/PythonPillow/Fonts/Pacifico.ttf', 40)
# get a drawing context
d = ImageDraw.Draw(txt)
# draw text, half opacity
d.text((14,14), "Tutorials", font=fnt, fill=(255,255,255,128))
# draw text, full opacity
d.text((14,60), "Point", font=fnt, fill=(255,255,255,255))
out = Image.alpha_composite(base, txt)
#Show image
out.show()
Resultado
Desenhar formas usando o módulo 'ImageDraw'
O módulo ImageDraw nos permite criar diferentes formas criando primeiro um objeto de desenho com a imagem com a qual deseja trabalhar e depois aplicando-o. Algumas das formas comuns que podemos desenhar usando o módulo 'ImageDraw' são as seguintes -
Linha
A seguir, a sintaxe para desenhar uma linha usando o travesseiro python -
draw.line(xy, fill=None, width=0)
o line()método desenha uma linha do canto superior esquerdo ao canto inferior direito da caixa delimitadora xy e da tela. A linha é preenchida com preenchimento de cor. Os valores padrão de Nenhum e 0, respectivamente, são para os parâmetros preenchimento e largura, que são opcionais.
Exemplo
from PIL import Image, ImageDraw
img = Image.new('RGB', (500, 300), (125, 125, 125))
draw = ImageDraw.Draw(img)
draw.line((200, 100, 300, 200), fill=(0, 0, 0), width=10)
img.show()
Resultado
Eclipse
A seguir, a sintaxe para desenhar uma elipse usando o travesseiro python -
draw.ellipse(xy, fill=None, outline=None)
o ellipse()método desenha a elipse cercada pela caixa delimitadora xy no desenho. A forma é preenchida usando preenchimento de cor e o perímetro em contorno de cor. Os valores padrão de Nenhum são para os parâmetros preenchimento e largura, que são opcionais.
Exemplo
from PIL import Image, ImageDraw
img = Image.new('RGB', (500, 300), (125, 125, 125))
draw = ImageDraw.Draw(img)
draw.ellipse((200, 125, 300, 200), fill=(255, 0, 0), outline=(0, 0, 0))
img.show()
Resultado
Retângulo
A seguir, a sintaxe para desenhar um retângulo usando o travesseiro python -
draw.rectangle(xy, fill=None, outline=None)
o rectangle()método desenha o retângulo dado a caixa delimitadora xy no desenho. A forma é preenchida usando preenchimento de cor e o perímetro em contorno de cor. Os valores padrão de Nenhum são para os parâmetros preenchimento e largura, que são opcionais.
from PIL import Image, ImageDraw
img = Image.new('RGB', (500, 300), (125, 125, 125))
draw = ImageDraw.Draw(img)
draw.rectangle(
(200, 125, 300, 200),
fill=(255, 0, 0),
outline=(0, 0, 0))
img.show()
Resultado
Polígono
A seguir, a sintaxe para desenhar um retângulo usando o travesseiro python -
draw.polygon(seq, fill=None, outline=None)
o polygon()O método desenha um polígono conectando com linhas retas os locais da sequência de coordenadas seq no desenho. A primeira e a última coordenadas em seq também são conectadas por uma linha reta. A forma é preenchida usando preenchimento de cor e o perímetro em contorno de cor. Os parâmetros de preenchimento e contorno são opcionais com valores padrão Nenhum.
from PIL import Image, ImageDraw
img = Image.new('RGB', (500, 300), (125, 125, 125))
draw = ImageDraw.Draw(img)
draw.polygon(
((200, 200), (300, 100), (250, 50)),
fill=(255, 0, 0),
outline=(0, 0, 0))
img.show()