Python圖像處理庫(kù)PIL的ImageGrab模塊介紹詳解
ImageGrab模塊用于將當(dāng)前屏幕的內(nèi)容或者剪貼板上的內(nèi)容拷貝到PIL圖像內(nèi)存。
當(dāng)前版本只支持windows系統(tǒng)。
一、ImageGrab模塊的函數(shù)
1、 Grab
定義:ImageGrab.grab()⇒ image
ImageGrab.grab(bbox) ⇒ image
含義:(New in 1.1.3)抓取當(dāng)前屏幕的快照,返回一個(gè)模式為“RGB”的圖像。參數(shù)邊界框用于限制只拷貝當(dāng)前屏幕的一部分區(qū)域。
例子:
>>> from PIL importImage, ImageGrab >>> im =ImageGrab.grab() >>> im.size (1366, 768) >>> im.mode 'RGB' >>> im.show() >>> im0 =ImageGrab.grab((300, 100, 1400, 600)) >>> im0.show() >>> im0.size (1100, 500) >>> im0.mode 'RGB'
圖像im是拷貝了整個(gè)屏幕的內(nèi)容,其尺寸為1366x768,為我的顯示器當(dāng)前分辨率尺寸。圖像im0拷貝了區(qū)域(300, 100, 1400, 600)中1100x500大小的屏幕內(nèi)容。
圖像im如下:
圖像im0如下:
2、 Grabclipboard
定義:ImageGrab.grabclipboard()⇒ image or list of strings or None
含義:(New in 1.1.4)抓取當(dāng)前剪貼板的快照,返回一個(gè)模式為“RGB”的圖像或者文件名稱的列表。如果剪貼板不包括圖像數(shù)據(jù),這個(gè)函數(shù)返回空。
用戶可以使用函數(shù)isinstance()來(lái)檢查該函數(shù)返回的是一個(gè)有效圖像對(duì)象或者其他數(shù)據(jù)。
例子:
from PIL import Image, ImageGrab im = ImageGrab.grabclipboard() if isinstance(im, Image.Image): print "Image: size : %s, mode: %s" % (im.size, im.mode) im.save("D:\\Document\\mdoc\\python\\pic\\12\\grab_grabclipboard.jpg") elif im: for filename in im: try: print "filename: %s" % filename im = Image.open(filename) except IOError: pass #ignore this file else: print "ImageList: size : %s, mode: %s" % (im.size, im.mode) else: print "clipboard is empty."
通過(guò)實(shí)驗(yàn),發(fā)現(xiàn)在畫(huà)圖工具中打開(kāi)圖像,選擇一部分然后剪貼,會(huì)返回一張模式為“RGB”的圖像。如果在文件夾下剪貼圖像文件,則會(huì)返回“clipboard is empty.”,即這里獲取的剪貼板內(nèi)容為空或者非圖像內(nèi)容。
本次測(cè)試的結(jié)果如下:
>>>================================ RESTART ================================
>>>
Image: size : (566, 335),mode: RGB
>>> im.size
(566, 335)
>>> im.mode
'RGB'
>>> im.show()
圖像im如下:
二、Python中的isinstance函數(shù)
isinstance是Python中的一個(gè)內(nèi)建函數(shù)
語(yǔ)法:
isinstance(object,classinfo)
如果參數(shù)object是classinfo的實(shí)例,或者object是classinfo類的子類的一個(gè)實(shí)例,返回True。如果object不是一個(gè)給定類型的對(duì)象,則返回結(jié)果總是False。
如果classinfo不表示一個(gè)類(類型對(duì)象),那么它要么是一個(gè)類的元組,或者遞歸地包含這樣的(由數(shù)據(jù)類型構(gòu)成的)元組.其他的序列類型是不被允許的。
如果classinfo不是一種數(shù)據(jù)類型或者由數(shù)據(jù)類型構(gòu)成的元組,將引發(fā)一個(gè)TypeError異常。
例子:
>>>isinstance(100, int) True >>>isinstance(10.5, int) False >>>isinstance(10.5, float) True >>>isinstance(10.5, int) False >>>isinstance(10.5, (int,float)) True
屏幕截圖
示例代碼
from PIL import Image from PIL import ImageGrab size = (300,300,400,400) img = ImageGrab.grab(size) img.save("cut.jpg") img.show()
到此這篇關(guān)于Python圖像處理庫(kù)PIL的ImageGrab模塊介紹詳解的文章就介紹到這了,更多相關(guān)PIL ImageGrab模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python圖像處理庫(kù)PIL詳細(xì)使用說(shuō)明
- Python編程OpenCV和Numpy圖像處理庫(kù)實(shí)現(xiàn)圖片去水印
- Python實(shí)現(xiàn)PIL圖像處理庫(kù)繪制國(guó)際象棋棋盤
- Python圖像處理庫(kù)PIL中圖像格式轉(zhuǎn)換的實(shí)現(xiàn)
- Python圖像處理庫(kù)PIL的ImageFilter模塊使用介紹
- Python圖像處理庫(kù)PIL的ImageEnhance模塊使用介紹
- Python圖像處理庫(kù)PIL的ImageFont模塊使用介紹
- Python圖像處理庫(kù)PIL的ImageDraw模塊介紹詳解
- 詳解python opencv、scikit-image和PIL圖像處理庫(kù)比較
- 推薦五個(gè)常用的python圖像處理庫(kù)
相關(guān)文章
Tensorflow實(shí)現(xiàn)將標(biāo)簽變?yōu)閛ne-hot形式
這篇文章主要介紹了Tensorflow實(shí)現(xiàn)將標(biāo)簽變?yōu)閛ne-hot形式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05python2與python3中關(guān)于對(duì)NaN類型數(shù)據(jù)的判斷和轉(zhuǎn)換方法
今天小編就為大家分享一篇python2與python3中關(guān)于對(duì)NaN類型數(shù)據(jù)的判斷和轉(zhuǎn)換方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10Python?pip命令清除Python包緩存文件問(wèn)題
這篇文章主要介紹了Python?pip命令清除Python包緩存文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03用Python計(jì)算三角函數(shù)之a(chǎn)tan()方法的使用
這篇文章主要介紹了用Python計(jì)算三角函數(shù)之a(chǎn)tan()方法的使用,是Python入門的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-05-05python django 原生sql 獲取數(shù)據(jù)的例子
今天小編就為大家分享一篇python django 原生sql 獲取數(shù)據(jù)的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08關(guān)于pycharm找不到MySQLdb模塊的解決方法
MySQLdb是用于Python鏈接Mysql數(shù)據(jù)庫(kù)的接口,它實(shí)現(xiàn)了Python數(shù)據(jù)庫(kù)API規(guī)范V2.0,基于MySql C API上建立的,本文給大家介紹pycharm找不到MySQLdb模塊解決方法,需要的朋友參考下吧2021-06-06Python練習(xí)之操作SQLite數(shù)據(jù)庫(kù)
這篇文章主要介紹了Python練習(xí)之操作SQLite數(shù)據(jù)庫(kù),主要通過(guò)三個(gè)問(wèn)題如何創(chuàng)建SQLite數(shù)據(jù)庫(kù)?如何向SQLite表中插入數(shù)據(jù)?如何查詢SQLite表中的數(shù)據(jù)?展開(kāi)文章主題詳情,需要的朋友可以參考一下2022-06-06