Python Yastık - ImageDraw Modülü
‘ImageDraw’modülü, Image Object için basit 2D grafik desteği sağlar. Genel olarak, bu modülü yeni görüntüler oluşturmak, mevcut görüntülere açıklama eklemek veya rötuş yapmak ve web kullanımı için anında grafikler oluşturmak için kullanırız.
Grafik komutları, şekillerin çizimini ve metnin açıklamasını destekler.
Bir görüntü, iki boyutlu bir piksel dizisi (resim öğeleri) olacak şekilde iyi düşünülmüş olabilir. Piksel, desteklenen en küçük renk noktasıdır.
ImageDraw tarafından kullanılan iki boyutlu koordinat sisteminin orijini, upper left corner görüntünün.
Kullandığımız yastık renk şemaları RGB'dir. Renkli RGB gösterimi ve desteği modül tarafından sağlanırImageColor.
bitmap, OpenType veya TrueType, metin ek açıklamaları için kabul edilebilir fontlardır.
Çizim komutlarının çoğu, komutun uygulanacağı görüntü üzerindeki alanı belirten bir sınırlayıcı kutu parametresi gerektirebilir.
Bir koordinat dizisi [(x0, y0), (x1, y1),… (xn, yn)] olarak temsil edilebilir.
Bazı çizim komutları için açı değerlerine ihtiyaç duyarız.
Misal
Aşağıdaki python örneği, verilen görüntü boyunca bir çizgi çizer -
#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()
Çıktı
Yukarıdaki programı Example.py olarak kaydedip çalıştırırsanız, görüntü boyunca bir çizgi çizer ve aşağıdaki gibi standart PNG görüntüleme yardımcı programını kullanarak görüntüler -
Tuval
Bir ImageDraw, bir Görüntünün Yastık ile çekilebilir bir yüzeyidir (yani bir kanvas).
ImageDraw.Draw (img), Image parametresi img'nin çizilebilir bir tuval temsilini döndürür. Kanvasın arka planı "img" görüntüsüdür.
Misal
Aşağıdaki python örneği verilen resim üzerine metin çizer -
#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()
Çıktı
'ImageDraw' modülünü kullanarak şekil çizme
ImageDraw modülü, çalışmak istediğiniz görüntü ile önce bir çizim nesnesi oluşturup ardından uygulayarak farklı şekiller oluşturmamızı sağlar. 'ImageDraw' modülünü kullanarak çizebileceğimiz yaygın şekillerden bazıları aşağıdaki gibidir -
Hat
Aşağıda, python yastığı kullanarak bir çizgi çizmek için sözdizimi -
draw.line(xy, fill=None, width=0)
line()yöntem, xy ve canvas sınırlama kutusunun sol üst köşesinden sağ alt köşelerine bir çizgi çizer. Çizgi, renk dolgusu kullanılarak doldurulur. Sırasıyla Yok ve 0 varsayılan değerleri isteğe bağlı dolgu ve genişlik parametreleri içindir.
Misal
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()
Çıktı
Tutulma
Aşağıda, python yastığı kullanarak bir elips çizmek için sözdizimi -
draw.ellipse(xy, fill=None, outline=None)
ellipse()yöntem, çizim sırasında sınırlayıcı kutu xy ile çevrili elipsi çizer. Şekil, renk dolgusu ve çevresi renkli dış hat kullanılarak doldurulur. Yok varsayılan değerleri, isteğe bağlı dolgu ve genişlik parametreleri içindir.
Misal
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()
Çıktı
Dikdörtgen
Aşağıdaki sözdizimi, python yastığı kullanarak bir dikdörtgen çizmek için -
draw.rectangle(xy, fill=None, outline=None)
rectangle()yöntem çizimde xy sınırlayıcı kutusu verilen dikdörtgeni çizer. Şekil, renk dolgusu ve çevresi renkli dış hat kullanılarak doldurulur. Yok varsayılan değerleri, isteğe bağlı dolgu ve genişlik parametreleri içindir.
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()
Çıktı
Çokgen
Aşağıdaki sözdizimi, python yastığı kullanarak bir dikdörtgen çizmek için -
draw.polygon(seq, fill=None, outline=None)
polygon()yöntem, koordinat sıra konumlarını düz çizgilerle birleştiren bir çokgen çizer. Sıradaki ilk ve son koordinatlar da bir düz çizgi ile bağlanır. Şekil, renk dolgusu ve çevresi renkli dış hat kullanılarak doldurulur. Parametreler dolgu ve anahat isteğe bağlıdır ve varsayılan değerler Yoktur.
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()