Python Pillow - Modul ImageDraw
Itu ‘ImageDraw’modul menyediakan dukungan grafik 2D sederhana untuk Objek Gambar. Umumnya, kami menggunakan modul ini untuk membuat gambar baru, membuat anotasi atau memperbaiki gambar yang ada dan menghasilkan grafik dengan cepat untuk penggunaan web.
Perintah grafik mendukung gambar bentuk dan anotasi teks.
Sebuah gambar dapat dianggap sebagai larik piksel dua dimensi (elemen gambar). Piksel adalah titik warna terkecil yang didukung.
Asal dari sistem koordinat dua dimensi yang digunakan oleh ImageDraw, ada di upper left corner dari gambar.
Skema warna bantal yang kami gunakan adalah RGB. Representasi warna RGB dan dukungannya disediakan oleh modulImageColor.
bitmap, OpenType, atau TrueType adalah font yang dapat diterima untuk anotasi teks.
Sebagian besar perintah gambar mungkin memerlukan parameter kotak pembatas yang menentukan area pada gambar tempat perintah akan diterapkan.
Urutan koordinat dapat direpresentasikan sebagai [(x0, y0), (x1, y1),… (xn, yn)].
Untuk beberapa perintah menggambar, kami membutuhkan nilai sudut.
Contoh
Contoh python berikut menggambar garis melintasi gambar yang diberikan -
#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()
Keluaran
Jika Anda menyimpan program di atas sebagai Example.py dan mengeksekusi, itu menarik garis di seluruh gambar dan menampilkannya menggunakan utilitas tampilan PNG standar, sebagai berikut -
Kanvas
Sebuah ImageDraw adalah permukaan yang dapat digambar Bantal (yaitu, kanvas) dari sebuah Gambar.
ImageDraw.Draw (img) mengembalikan representasi kanvas yang dapat digambar dari parameter Image img. Latar belakang kanvas adalah gambar "img".
Contoh
Contoh python berikut menggambar teks pada gambar yang diberikan -
#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()
Keluaran
Menggambar Bentuk menggunakan modul 'ImageDraw'
Modul ImageDraw memungkinkan kita membuat berbagai bentuk dengan terlebih dahulu membuat objek gambar dengan gambar yang ingin Anda kerjakan, lalu menerapkannya. Beberapa bentuk umum yang bisa kita gambar menggunakan modul 'ImageDraw' adalah sebagai berikut -
Garis
Berikut sintaks untuk menggambar garis menggunakan bantal python -
draw.line(xy, fill=None, width=0)
Itu line()metode menggambar garis dari kiri atas ke sudut kanan bawah kotak pembatas xy dan kanvas. Garis diisi menggunakan isian warna. Nilai default dari None dan 0 masing-masing adalah untuk parameter fill dan width yang bersifat opsional.
Contoh
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()
Keluaran
Gerhana
Berikut sintaks untuk menggambar elips menggunakan bantal python -
draw.ellipse(xy, fill=None, outline=None)
Itu ellipse()metode menggambar elips dikelilingi oleh kotak pembatas xy pada gambar. Bentuknya diisi menggunakan isian warna dan keliling dengan garis warna. Nilai default None adalah untuk parameter fill dan width yang bersifat opsional.
Contoh
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()
Keluaran
Empat persegi panjang
Berikut sintaks untuk menggambar persegi panjang menggunakan bantal python -
draw.rectangle(xy, fill=None, outline=None)
Itu rectangle()metode menggambar persegi panjang diberi kotak pembatas xy pada gambar. Bentuknya diisi menggunakan isian warna dan keliling dengan garis warna. Nilai default None adalah untuk parameter fill dan width yang bersifat opsional.
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()
Keluaran
Poligon
Berikut sintaks untuk menggambar persegi panjang menggunakan bantal python -
draw.polygon(seq, fill=None, outline=None)
Itu polygon()Metode menggambar poligon yang menghubungkan dengan garis lurus lokasi urutan koordinat seq pada gambar. Koordinat pertama dan terakhir dalam urutan juga dihubungkan dengan garis lurus. Bentuknya diisi menggunakan isian warna dan keliling dengan garis warna. Pengisian parameter dan kerangka bersifat opsional dengan nilai default Tidak ada.
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()