溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python中的Pillow模塊有什么作用

發(fā)布時間:2021-06-18 10:58:14 來源:億速云 閱讀:922 作者:chen 欄目:編程語言

本篇內(nèi)容介紹了“Python中的Pillow模塊有什么作用”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

前言

Pillow作為一個圖片模塊??芍^是真的簡便強大,它的前身是PIL,后來將他取代,現(xiàn)在的pillow  可謂是一家獨大,好了,讓我們來看看他的具體用法。

今天我們介紹pillow 常用六大模塊:

1.Image

2.ImageDraw

3.ImageEnhance

4.ImageFont

5.ImageGrab

6.ImageFilter

一、Image

from PIL import Image from io import BytesIO #讀取一張圖片 im=Image.open('2.jpg') #根據(jù)文件名讀取圖像 b=BytesIO() im.save(b,'JPEG') data=b.getvalue() print(data)#獲取圖片的二進制信息 #圖片格式 print('格式:',im.format) #圖片模式 print('模式:',im.mode)  #L:灰度  RGB:真彩色 CMYK:出版圖像 #圖像寬高 print('寬高:',im.size) print('完整信息:',im.info) try:     im.verify()#檢查圖像文件的完整性 except:     pass finally:     im.show() #顯示一張圖片     im.save('4.jpg','JPEG') #保存圖片

Python中的Pillow模塊有什么作用

from PIL import Image from io import BytesIO import requests #創(chuàng)建新圖片: im1=Image.new('RGBA',(400,400),'red') #從二進制中讀取圖片 res=requests.get('http://pic.sc.chinaz.com/files/pic/pic9/202003/zzpic24077.jpg').content im2=Image.frombytes('RGB',(100,100),data=res)#只能解析純二進制圖片 #從網(wǎng)頁中讀取圖片 im2=Image.open(BytesIO(res)) b=BytesIO() im2.save(b,format="PNG") im2.show()  #兩張圖片相加: im1=Image.new('RGBA',(400,400),'red') im2=Image.new('RGBA',(400,400),'blue') Image.blend(im1,im2,0.5) #兩個圖片大小一定要一樣(效果見圖4)  #點操作: im1.point(lambda x:x*1.2)   #圖片裁剪: box=(100,100,200,200) region=im.crop(box)#設(shè)置要裁剪的區(qū)域  #圖片粘貼(合并) im1.paste(region,box)#粘貼box大小的region到原先的圖片對象中。(見圖5)   im1=Image.new('RGB',(400,400),'red') im2=Image.new('RGBA',(400,400),'blue')  #通道分離: r,g,b=im1.split()#分割成三個通道,此時r,g,b分別為三個圖像對象。 print(r,g,b) #通道合并: im3=Image.merge("RGB",(b,g,r))#將b,r兩個通道進行翻轉(zhuǎn)。   #改變圖片的大?。?nbsp;im4=im1.resize((300,200)) im4.show()   #圖片翻轉(zhuǎn) im5=im1.transpose(Image.FLIP_LEFT_RIGHT)  #左右翻轉(zhuǎn) im6=im2.transpose(Image.FLIP_TOP_BOTTOM)  #上下翻轉(zhuǎn) im5.show() im6.show()   #獲取某個像素位置的值 im1.getpixel((43,23))   #寫某個像素位置的值 im1.putpixel((10,20),(255,32,43))   #創(chuàng)建圖像縮略圖 im1.thumbnail((10,20))#圖片大小為(10,20) im1.show()  #旋轉(zhuǎn)圖像 im8=im1.rotate(45) #逆時針旋轉(zhuǎn)45度 im8.show() 注:RGB有三個通道,RGBA有四個通道,以上圖片顯示效果都在圖6中   #圖片模式轉(zhuǎn)換 im3.convert('RGBA') modes       Description  1      1位像素,黑白圖像,存成8位像素  L      8位像素,黑白  P      9位像素,使用調(diào)色板映射到任何其他模式 RGB     3*8位像素,真彩 RGBA4*8位像素,真彩+透明通道 CMYK4*8位像素,印刷四色模式或彩色印刷模式 YCbCr3*8位像素,色彩視頻格式  I      32位整型像素  F      33位浮點型像素

Python中的Pillow模塊有什么作用

Python中的Pillow模塊有什么作用

Python中的Pillow模塊有什么作用

二、ImageDraw

這個模塊主要就是畫圖和打水印時用的,具體方法請看下面:

from PIL import Image,ImageDraw #畫點 im=Image.open('2.jpg') draw= ImageDraw.Draw(im) draw.point([100,200],fill='blue')#指定點的坐標(biāo)和顏色   # 創(chuàng)建一個正方形。[x1,x2,y1,y2]或者[(x1,x2),(y1,y2)]  fill代表的為顏色 draw.line([100,100,100,600],fill='pink')#直線 draw.line([100,100,600,100],fill='green') draw.line([600,100,600,600],'black') draw.line([100,600,600,600],'blue')    # 弧形 [x1,x2,y1,y2]  弧度 顏色 draw.arc([100,100,600,600],0,360,fill='black') draw.arc([200,100,500,600],0,360,fill='yellow')   # 畫圓  [x1,x2,y1,y2] outline邊框顏色 fill填充顏色 draw.ellipse([100,100,600,600],outline='black',fill='white')   # 畫半圓 [x1,x2,y1,y2]  弧度 outline弦線顏色 fill填充顏色 draw.chord([100,100,600,600],0,360,outline=125) draw.chord([100,100,600,600],0,90,outline=158) draw.chord([100,100,600,600],90,180,outline=99,fill='gray')    # 扇形 [x1,x2,y1,y2]  弧度 outline弦線顏色 fill填充顏色 draw.pieslice([100,100,600,600],180,210,outline=255) draw.pieslice([100,100,600,600],30,80,fill=255)    # 多邊形 draw.polygon([10,23,45,6,77,87],outline='orange') draw.polygon([10,20,30,40,50,90,70,80,90,100],fill='red')   # 矩形 draw.rectangle((200,200,500,500),outline = "white") draw.rectangle((250,300,450,400),fill = 128)   # 文字 text = 'hello world ' # 顏色 draw.ink = 0 + 0 * 256 + 255 * 256 * 256 # 加載到圖片上 draw.text([200,100],text) im.show()

Python中的Pillow模塊有什么作用

這里每個圖形基本都一覽無余,如果你的圖片像素太小的話,所繪制的圖形是不會完整顯示在上面的。

三、ImageEnhance

主要是設(shè)置圖片的顏色對比度亮度銳度啥的,增強圖像。

from PIL import  ImageEnhance        im1=Image.open('4.jpg')    #調(diào)整圖像的顏色平衡 cl=ImageEnhance.Color(im1) ce=cl.enhance(1.2)#對選擇的屬性數(shù)值增強1.3倍 ce.show() #調(diào)整圖像的對比度 ct=ImageEnhance.Contrast(im1) ch=ct.enhance(3.4) ch.show() #調(diào)整圖像的亮度 br=ImageEnhance.Brightness(im1) be=br.enhance(2.2) be.show() #調(diào)整圖像的銳度 sp=ImageEnhance.Sharpness(im1) se=sp.enhance(200) se.show()

Python中的Pillow模塊有什么作用

四、ImageFont

字體模塊,主要是讀取系統(tǒng)內(nèi)字體以及給圖片添加水印效果

from PIL import Image from PIL import ImageDraw from PIL import ImageFont font=ImageFont.truetype(r'C:\Windows\Fonts\simsun.ttc',size=40) im=Image.open('4.jpg') dw=ImageDraw.Draw(im) dw.text((50,60),'你好,world',fill='red',font=font) im.show()

Python中的Pillow模塊有什么作用

五、ImageGrab

from PIL import ImageGrab  im1=ImageGrab.grab((0,0,800,200)) #截取屏幕指定區(qū)域的圖像  im2=ImageGrab.grab() #不帶參數(shù)表示全屏幕截圖 im1.show() im2.show()

Python中的Pillow模塊有什么作用

六、ImageFilter

過濾圖像的效果。

from PIL import Image, ImageFilter  im = Image.open('4.jpg')  # 高斯模糊  im1=im.filter(ImageFilter.GaussianBlur)  im1.show() # 普通模糊  im2=im.filter(ImageFilter.BLUR)  im2.show() # 邊緣增強  im3=im.filter(ImageFilter.EDGE_ENHANCE)  im3.show() # 找到邊緣  im4=im.filter(ImageFilter.FIND_EDGES)  im4.show() # 浮雕  im5=im.filter(ImageFilter.EMBOSS)  im5.show() # 輪廓  im6=im.filter(ImageFilter.CONTOUR)  im6.show() # 銳化  im7=im.filter(ImageFilter.SHARPEN)  im7.show() # 平滑  im8=im.filter(ImageFilter.SMOOTH)  im8.show() #闕值平滑 im9=im.filter(ImageFilter.SMOOTH_MORE)  im9.show() # 細節(jié)  im10=im.filter(ImageFilter.DETAIL) im10.show()

Python中的Pillow模塊有什么作用

pillow 還算是比較強大的一個 模塊,他可以輕松實現(xiàn)截屏 水印效果,并且還可以制作字符畫,下面請看:

from PIL import Image from PIL import ImageDraw from PIL import ImageFont txt = 'meimei' font = ImageFont.truetype(r'C:\Windows\Fonts\simsun.ttc',9)  #9為字體大小 im_path = '1.jpg'  #原圖路徑 im = Image.open(im_path) width, height = im.size  newImg = Image.new("RGBA",(width, height),(10,10,10))  #背景色rgb,偏黑顯示好一些 x=0 for i in range(0,height,9):   #需要與字體大小一致     for j in range(0,width,9): #需要與字體大小一致         a,b,c=im.getpixel((j,i)) #獲取像素         draw = ImageDraw.Draw(newImg)         draw.text( (j,i), (txt[x%(len(txt)):x%(len(txt))+3]), fill=(a,b,c),font=font)         x+=3         del draw newImg.save('00.png','PNG')

Python中的Pillow模塊有什么作用

七、總結(jié)

通過對Pillow的學(xué)習(xí),相信你現(xiàn)在已經(jīng)能玩轉(zhuǎn)圖片的各種騷操作了,配合詞云的話就能生成更具特色的圖片了。

“Python中的Pillow模塊有什么作用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI