溫馨提示×

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

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

Python編程圖形庫之Pillow使用方法講解

發(fā)布時(shí)間:2020-08-19 17:24:51 來源:腳本之家 閱讀:182 作者:liumiaocn 欄目:開發(fā)技術(shù)

PIL vs Pillow

PIL: Python Imaging Library,是python的圖像處理庫。由于PIL不兼容setuptools,再加上更新緩慢等因素,Alex Clark等一些社區(qū)好心人還是希望能夠繼續(xù)支持PIL,所以fork了PIL,這就是Pillow的緣起。

Pillow的目標(biāo)

推動(dòng)和促進(jìn)PIL的發(fā)展是Pillow的目標(biāo),主要通過如下的方式來進(jìn)行

  • 結(jié)合Travis CI和AppVeyor進(jìn)行持續(xù)集成測(cè)試
  • 活用github進(jìn)行開發(fā)
  • 結(jié)合Python Package Index進(jìn)行例行發(fā)布

其實(shí)可以看出,所做的改善就是在CI和CD,改善用戶感知,定期/快速地與使用者進(jìn)行溝通和交流,是pillow獲得好感的一個(gè)重要因素。

安裝

安裝可以通過pip,只需要執(zhí)行pip install pillow即可

liumiaocn:~ liumiao$ pip install pillow
Collecting pillow
 Downloading https://files.pythonhosted.org/packages/df/aa/a25f211a4686f363d8ca5a1752c43a8f42459e70af13e20713d3e636f0af/Pillow-5.1.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (3.6MB)
  100% |████████████████████████████████| 3.6MB 157kB/s 
Installing collected packages: pillow
Successfully installed pillow-5.1.0
liumiaocn:~ liumiao$

安裝確認(rèn)

liumiaocn:~ liumiao$ pip show pillow
Name: Pillow
Version: 5.1.0
Summary: Python Imaging Library (Fork)
Home-page: https://python-pillow.org
Author: Alex Clark (Fork Author)
Author-email: aclark@aclark.net
License: Standard PIL License
Location: /usr/local/lib/python2.7/site-packages
Requires: 
Required-by: 
liumiaocn:~ liumiao$ 

使用

圖形庫有很多實(shí)用的功能,這里列舉幾個(gè)進(jìn)行簡(jiǎn)單演示。

ImageGrab.grab()

使用這個(gè)方法可以實(shí)現(xiàn)抓屏:

liumiaocn:tmp liumiao$ cat grab.python 
#!/usr/local/bin/python
from PIL import ImageGrab
#get current screen copy
image = ImageGrab.grab()
#display image size
print("Current screen shot size :",image.size)
#display image mode
print("Screen shot picture mode :", image.mode)
#save picture to /tmp/screen-grab-1.bmp
image.save('/tmp/screen-grab-1.bmp')
#show picture
image.show()
liumiaocn:tmp liumiao$

因?yàn)榇a中使用了image.show()進(jìn)行了顯示,執(zhí)行之后可以直接看到顯示,同時(shí)也能確認(rèn)到/tmp下所生成的文件

liumiaocn:tmp liumiao$ python grab.python 
('Current screen shot size :', (2880, 1800))
('Screen shot picture mode :', 'RGBA')
liumiaocn:tmp liumiao$ ls -l /tmp/screen-grab-1.bmp
-rw-r--r-- 1 liumiao wheel 20736054 Jun 23 05:41 /tmp/screen-grab-1.bmp
liumiaocn:tmp liumiao$

Python編程圖形庫之Pillow使用方法講解

濾鏡

PIL中的ImageFilter支持近十種濾鏡, 比如對(duì)剛剛抓取的圖片使用CONTOUR濾鏡

liumiaocn:tmp liumiao$ cat filter-contour.py 
#!/usr/local/bin/python
from PIL import ImageFilter, Image
src_image = Image.open('/tmp/screen-grab-1.bmp')
print("begin to filter the pic")
dst_image = src_image.filter(ImageFilter.CONTOUR)
print("picture through filter")
dst_image.show()
liumiaocn:tmp liumiao$

執(zhí)行之后可以得到如下圖片

Python編程圖形庫之Pillow使用方法講解

旋轉(zhuǎn)

使用rotate即可對(duì)圖片進(jìn)行旋轉(zhuǎn)操作:

liumiaocn:tmp liumiao$ cat rotate.py 
#!/usr/local/bin/python
from PIL import Image
src_image = Image.open('/tmp/screen-grab-1.bmp')
print("begin to rotate the pic")
dst_image = src_image.rotate(90)
print("picture after rotating")
dst_image.show()
liumiaocn:tmp liumiao$

執(zhí)行之后,即可確認(rèn)

Python編程圖形庫之Pillow使用方法講解

Pillow功能非常之多,而且使用也很方便,比如resize對(duì)尺寸進(jìn)行調(diào)節(jié),還可以添加文字等等常見的圖形處理操作,這里就不再一一介紹,具體的需要可以參看如下鏈接進(jìn)行了解:https://pypi.org/project/Pillow/

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)億速云的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

向AI問一下細(xì)節(jié)

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

AI