python PIL 影象處理
# 匯入Image庫
import Image
# 讀取圖片
im = Image.open("1234.jpg")
# 顯示圖片
im.show()
# 建立圖片
# 語法:new(mode, size, color=0) newim = Image.new("RGBA",(640,480),(0,255,0))
# 儲存圖片
newim.save("123.jpg","jpg") # 儲存為jpg格式
# 圖片合成
# 語法:blend(im1, im2, alpha) # alpha表示im1和im2的比例引數 Image.blend(im,newim,0.5)
# 點操作
im.point(function) # function接受一個引數,且對圖片中的每一個點執行這個函式
# 檢視影象資訊
im.format() im.size() im.mode()
# 圖片剪裁
box = (100,100,400,400) # 設定要裁剪的區域 region = im.crop(box) # region是一個新的影象物件
# 影象合併
im.paste(region,box)
# 改變影象的大小
out = im.resize((128,128)) #resize成128*128畫素大小
# 旋轉影象
im.rotate(45)
# 影象型別轉換
im = im.convert("RGBA")
# 獲取某個畫素位置的值
im.getpixel((4,4))
# ImageDraw模組是對Image物件進行簡單的二維影象操作的模組
import ImageDraw
# 在顯示的圖片中,輸出文字
draw = ImageDraw.Draw(im) draw.text((10,10),"hello,python",file=(255,0,0),font=None)
# 在影象中畫線
draw.line((0,0) + im.size,fill=128)
# eg_v1 生成字母驗證碼圖片
import Image import ImageDraw import ImageFont import ImageFilter import random # 生成隨機字母 def Chr(): return chr(random.randint(65,90)) # 隨機顏色1 def Color(): return (random.randint(64,255),random.randint(64,255)) # 隨機顏色2 def Color2(): return (random.randint(32,127),random.randint(32,127)) # 建立圖片 width = 60 * 4 height = 60 image = Image.new("RGBA",(width,height),(255,255,255)) # 建立Font物件 font = ImageFont.truetype("Arial.ttf",36) # 建立Draw物件 draw = ImageDraw.Draw(image) # 填充畫素 for x in range(width): for y in range(height): draw.point((x,y),fill = Color()) # 輸入文字 for i in range(4): draw.text((60 * i + 10,10),Color(),font=font,fill=Color2()) image = image.filter((ImageFilter.BLUR)) image.save("123.jpg","jpeg")