python PIL 影象處理操作

xie仗劍天涯發表於2017-05-15
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")

  

 

相關文章