PIL庫的總結及運用


 PIL庫的總結:(以代碼形式)

#date: 2018/11/15

from PIL import Image,ImageFilter,ImageDraw,ImageFont  #####除了縮略圖的方法,其他方法都是返回值,需要變量來接收


img = Image.open('2.jpg')
#img.show()   #展示圖片

# print(img.size[0],img.size[1])    #在圖片中添加文字
# draw = ImageDraw.Draw(img)
# ttFont = ImageFont.truetype ("C:/Users/admin/Desktop/文件/微信爬蟲/simhei.ttf", 60)
# draw.text((img.size[0]/2,img.size[1]/2),text='你好',font=ttFont,fill=(255,0,0))
# img.show()


# new_image = img.resize((1080,800),resample = 4)    #改變圖片大小, 參數含義,默認NEAREST最近鄰(分割常用),分類常用BILINEAR雙線性,BICUBIC立方
# new_image.show()   #展示改變后的圖片

# im = Image.new('RGB',(128,128),color=700)  #新建一張大小為128*128的圖片,color為顏色參數(默認為黑色)
# im.show()

# img_1 = img.convert('L')    #將圖片改變為灰色,參數'L','F','I'都是灰色,一般用L
# img_2 = img.convert('1')    #參數 1 也是灰度,會加模糊網格濾鏡
# img_2.show()
# img_1.show()

# img.thumbnail((150,130))  #縮略圖,與resize功能類似      重要!@resize需要重新定義新圖,thumbnail不用
# img.show()

# img.thumbnail((640,400))    # rotate 逆時針改變圖方向
# im = img.rotate(315)
# im.show()

#img_new = img.filter(ImageFilter.BLUR)     #使圖片變模糊
#img_new = img.filter(ImageFilter.DETAIL)    #使圖片細節更突出
#img_new = img.filter(ImageFilter.CONTOUR)      #使圖片只有輪廓
#img_new = img.filter(ImageFilter.EDGE_ENHANCE)   #使圖像整體顏色更深  有點油畫的感覺
#img_new = img.filter(ImageFilter.EDGE_ENHANCE_MORE)  #上一個加強版
#img_new = img.filter(ImageFilter.EMBOSS)   #使圖片石雕化,就是石膏一樣的圖片
#img_new = img.filter(ImageFilter.FIND_EDGES)    #使圖片黑色化,只剩輪廓
#img_new = img.filter(ImageFilter.SMOOTH_MORE)  #使圖片平滑
#img_new.show()

 縮略圖代碼:

from PIL import Image
img = Image.open('D:\\蓮花.jpg')
img = img.resize((100, 128), Image.ANTIALIAS)
img.save('蓮花_small.jpg')
 

 

此代碼將縮略圖存放在與程序同一級目錄

原圖:

 

縮略圖:

 圖片顏色處理:

from PIL import Image
im= Image.open('D:\\蓮花.jpg')
r,g,b=im.split()
om = Image.merge("RGB",(g,b,r))#修改顏色
om.save('蓮花_color.jpg')
 

處理后:

 

輪廓,浮雕,銳化等

處理代碼:

from PIL import Image
from PIL import ImageFilter
im= Image.open('D:\\蓮花.jpg')
om = im.filter(ImageFilter.CONTOUR)#輪廓處理
#om = im.filter(ImageFilter.EMBOSS)#浮雕處理
#om = im.filter(ImageFilter.SHARPEN)#銳化處理
om.save('蓮花_contour.jpg') 
 

 

輪廓處理后:

 

 

浮雕處理后:

 

 銳度處理后:

 

提取GIF圖的每一幀代碼:

from PIL import Image
im= Image.open('D:\\123.gif')
try:
    im.save('123_{:02d}.png'.format(im.tell()))
    while True:
        im.seek(im.tell()+1)
        im.save('123_{:02d}.png'.format(im.tell()))
except:
    print("over")

原圖:

 

每一幀:

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM