python PIL的基本操作

from PIL import Image,ImageFilter,ImageEnhance
#操作1
#讀取圖片*************************************
img = Image.open(“pic1.jpg”)
print(type(img),img)
#或者
fp = open(“file.jpg”, “rb”)
im = Image.open(fp)
#或者
import StringIO
img = Image.open(StringIO.StringIO(buffer))
#輸出:
<class ‘PIL.JpegImagePlugin.JpegImageFile’> <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=1200x675 at 0x2971208>
#調用默認圖片查看工具展示圖片**************
img.show()
#改變圖片大小*********************************
w,h = img.size #返回一個元組
print(img.size)
img.thumbnail((w//2,h//2))
img.show()
或者out = img.resize((128, 128))#resize成128128像素大小。
#保存圖片到當前工作目錄***********************
img.save(“t1.jpg”,“jpeg”)
#旋轉圖片,以圖片中心爲原點,逆時針旋轉
***
img = img.rotate(90)
img.show()
#獲取圖片深度***********************
bands = img.getbands()
print(bands)
#灰度化**************************************
img = img.convert(“L”)
bands = img.getbands()
print(bands)
#獲取指定像素座標點的值*******************
pixes = img.getpixel((30,30))
print(pixes)
#返回像素直方圖*****************************
pr = img.histogram()
print(type(pr),pr)
#圖片粘貼*******************************
img2 = Image.open(“pic.jpg”)
img.paste(img2,(500,300))
img.show()
#把img2粘貼到img上
#濾波器************************************
img = img.filter(ImageFilter.EMBOSS)
img.show()
#在指定圖片上拷貝指定區域***********************************************************
#設置拷貝區域
box = (100,100,200,200)
#將img圖片上box區域的圖片拷貝到region中
region = img.crop(box)
region = region.transpose(Image.ROTATE_180)
圖片通道分離**********************************************************************
r,g,b = img.split()#分割成三個通道
img.show()
r.show()
g.show()
b.show()
#通道值互換,通道合併******************************************************
img = Image.merge(“RGB”, (b, g, r))#將b,r兩個通道進行翻轉。
#直接操作像素點
out = img.point(lambda i : i * 1.2)#注意這裏用到一個匿名函數(那個可以把i的1.2倍返回的函數)
out.show()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章