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")
原圖:
每一幀: