PIL的ImageDraw庫
PIL的ImageDraw庫
from PIL import Image, ImageDraw
im = Image.open()
draw = ImageDraw.Draw(im)
draw.line((0, 0) + im.size, fill=128)
draw.line((0, im.size[1], im.size[0], 0), fill=128)
del draw
im.save(sys.stdout, )
//這個例子是在圖檔上畫一條對角線
//現在我還沒有開始學,是以暫時看不懂
//拿來運作了一遍,還不錯
1.初始化需要繪圖的圖像
from PIL import Image,ImageDraw
im = Image.open("1.png")
draw = ImageDraw.Draw(im)
//此時初始化了一個draw對象
//接下來可使用各種方法在im圖檔對象上操作
2.擷取目前字型
PIL.ImageDraw.ImageDraw.getfont()
from PIL import Image, ImageDraw
import sys
im = Image.open("1.png")
draw = ImageDraw.Draw(im)
print(draw.getfont())
//結果傳回:PIL.ImageFont.ImageFont object at 0x04AB37D0
//應該是傳回了目前字型的資訊
//具體有什麼用,還有待考察
3.在給定區域内擷取位圖
PIL.ImageDraw.ImageDraw.bitmap(xy, bitmap, fill=None)
from PIL import Image, ImageDraw
import sys
im01 = Image.open("1.png")
im02=Image.open("1.png")
r,g,b=im02.split()
draw=ImageDraw.Draw(im01)
draw.bitmap((0,0),b,(0,255,0))
im01.show()
//擷取到了1.png的位圖
//但是不知道r,g,b=im02.split()的用意
//r,g,b=im02.split()這個方法是将圖檔的三色通道分開
4.在所給圖像中繪制一個圓或圓的一部分
PIL.ImageDraw.ImageDraw.chord(xy, start, end, fill=None, outline=None)
from PIL import Image, ImageDraw
import sys
im01 = Image.open("1.png")
draw=ImageDraw.Draw(im01)
draw.chord((0,0,200,200),0,180,(255,0,0),(0,255,0))
im01.show()
//在四元組區域繪制一個圓或者圓的一部分
//
5.繪制一個橢圓
PIL.ImageDraw.ImageDraw.ellipse(xy, fill=None, outline=None)
from PIL import Image, ImageDraw
import sys
im01 = Image.open("1.png")
draw=ImageDraw.Draw(im01)
draw.ellipse((0,0,200,200),(0,255,0),(0,0,255))
im01.show()
//在指定區域畫一個橢圓
//參數的用法和.ImageDraw.arc是一樣的
6.在圖檔中畫一條線
PIL.ImageDraw.ImageDraw.line(xy, fill=None, width=0)
from PIL import Image, ImageDraw
im=Image.open("2.png")
draw=ImageDraw.Draw(im)
draw.line([(100,50),(300,100)],(0,255,0),10)
im.show()
//第一個參數為一個二進制組,每個元組中包含兩個坐标
//分别為起始坐标和終止坐标
//第二個參數為線的顔色
//第三個參數為線的寬度
7.在圖檔上畫點
PIL.ImageDraw.ImageDraw.point(xy, fill=None)
from PIL import Image, ImageDraw
im=Image.open("2.png")
draw=ImageDraw.Draw(im)
draw.point([(20,100),(100,20),(50,50),(200,150)],(0,255,0))
im.show()
//在給定的元組内進行畫點
//每個點占用一個像素
//測試的時候記得仔細找一找,一個像素很小
8.繪制一個多邊形
PIL.ImageDraw.ImageDraw.polygon(xy, fill=None, outline=None)
from PIL import Image, ImageDraw
im=Image.open("2.png")
draw=ImageDraw.Draw(im)
draw.polygon([(200,10),(50,50),(45,150),(42,195),(62,45)],(255,0,0))
im.show()
9.在指定的位置繪制一個字元
PIL.ImageDraw.ImageDraw.text(xy, text, fill=None, font=None, anchor=None, spacing=0, align=”left”, direction=None, features=None)
from PIL import Image, ImageDraw
im=Image.open("2.png")
draw=ImageDraw.Draw(im)
draw.text((10,10),"hello",(0,255,0))
im.show()
//第一個參數是坐标
//第二個是要列印的文本
//第三個是顔色
//第四個是字型
//align屬性是字型對齊方式
//在最新的版本裡面沒有看到後面幾個屬性