Python图像处理库PIL的ImageGrab模块介绍详解


Posted in Python onFebruary 26, 2020

ImageGrab模块用于将当前屏幕的内容或者剪贴板上的内容拷贝到PIL图像内存。

当前版本只支持windows系统。

一、ImageGrab模块的函数

1、  Grab

定义:ImageGrab.grab()⇒ image

  ImageGrab.grab(bbox) ⇒ image

含义:(New in 1.1.3)抓取当前屏幕的快照,返回一个模式为“RGB”的图像。参数边界框用于限制只拷贝当前屏幕的一部分区域。

例子:

>>> 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是拷贝了整个屏幕的内容,其尺寸为1366x768,为我的显示器当前分辨率尺寸。图像im0拷贝了区域(300, 100, 1400, 600)中1100x500大小的屏幕内容。

图像im如下:

Python图像处理库PIL的ImageGrab模块介绍详解                             

图像im0如下:

Python图像处理库PIL的ImageGrab模块介绍详解

2、  Grabclipboard

定义:ImageGrab.grabclipboard()⇒ image or list of strings or None

含义:(New in 1.1.4)抓取当前剪贴板的快照,返回一个模式为“RGB”的图像或者文件名称的列表。如果剪贴板不包括图像数据,这个函数返回空。

用户可以使用函数isinstance()来检查该函数返回的是一个有效图像对象或者其他数据。

例子:

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."

通过实验,发现在画图工具中打开图像,选择一部分然后剪贴,会返回一张模式为“RGB”的图像。如果在文件夹下剪贴图像文件,则会返回“clipboard is empty.”,即这里获取的剪贴板内容为空或者非图像内容。

本次测试的结果如下:

>>>================================ RESTART ================================

>>>

Image: size : (566, 335),mode: RGB

>>> im.size

(566, 335)

>>> im.mode

'RGB'

>>> im.show()

图像im如下:

 Python图像处理库PIL的ImageGrab模块介绍详解

二、Python中的isinstance函数

isinstance是Python中的一个内建函数

语法:

isinstance(object,classinfo)

如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例,返回True。如果object不是一个给定类型的对象,则返回结果总是False。

如果classinfo不表示一个类(类型对象),那么它要么是一个类的元组,或者递归地包含这样的(由数据类型构成的)元组.其他的序列类型是不被允许的。

如果classinfo不是一种数据类型或者由数据类型构成的元组,将引发一个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()

到此这篇关于Python图像处理库PIL的ImageGrab模块介绍详解的文章就介绍到这了,更多相关PIL ImageGrab模块内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python执行等待程序直到第二天零点的方法
Apr 23 Python
Python+Opencv识别两张相似图片
Mar 23 Python
python实现中文转换url编码的方法
Jun 14 Python
Python抓取手机号归属地信息示例代码
Nov 28 Python
漂亮的Django Markdown富文本app插件的实现
Jan 02 Python
python pandas时序处理相关功能详解
Jul 03 Python
python代理工具mitmproxy使用指南
Jul 04 Python
Python Handler处理器和自定义Opener原理详解
Mar 05 Python
k-means 聚类算法与Python实现代码
Jun 01 Python
Python hashlib模块的使用示例
Oct 09 Python
pytorch 运行一段时间后出现GPU OOM的问题
Jun 02 Python
Python实现数据的序列化操作详解
Jul 07 Python
Python图像处理库PIL的ImageDraw模块介绍详解
Feb 26 #Python
PIL包中Image模块的convert()函数的具体使用
Feb 26 #Python
Pandas —— resample()重采样和asfreq()频度转换方式
Feb 26 #Python
python实现银行实战系统
Feb 26 #Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
Feb 26 #Python
python序列类型种类详解
Feb 26 #Python
python3光学字符识别模块tesserocr与pytesseract的使用详解
Feb 26 #Python
You might like
PHP脚本数据库功能详解(中)
2006/10/09 PHP
php自定义函数之递归删除文件及目录
2010/08/08 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
php数组键名技巧小结
2015/02/17 PHP
jquery $.ajax相关用法分享
2012/03/16 Javascript
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
js获取系统的根路径实现介绍
2013/09/08 Javascript
js函数在frame中的相互调用详解
2014/03/03 Javascript
JavaScript数组常用操作技巧汇总
2014/11/17 Javascript
PHP中使用微秒计算脚本执行时间例子
2014/11/19 Javascript
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
Vue侧滑菜单组件——DrawerLayout
2017/12/18 Javascript
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
vue下载excel的实现代码后台用post方法
2019/05/10 Javascript
JavaScript跳出循环的三种方法(break, return, continue)
2019/07/30 Javascript
Vue快速实现通用表单验证的示例代码
2020/01/09 Javascript
nuxt 每个页面head标签内容设置方式
2020/11/05 Javascript
JavaScript实现表单验证功能
2020/12/09 Javascript
[02:05:03]完美世界DOTA2联赛循环赛 LBZS VS Matador BO2 10.28
2020/10/28 DOTA
Python中getattr函数和hasattr函数作用详解
2016/06/14 Python
浅析python中numpy包中的argsort函数的使用
2018/08/30 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
基于python实现把图片转换成素描
2019/11/13 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
爱尔兰家电数码商城:Currys PC World爱尔兰
2016/07/23 全球购物
DogBuddy荷兰:找到你最完美的狗保姆
2019/04/17 全球购物
跟单文员岗位职责
2014/01/03 职场文书
商务邀请函范文
2014/01/14 职场文书
2014年酒店工作总结范文
2014/11/17 职场文书
2016年元旦寄语
2015/08/17 职场文书
初三化学教学反思
2016/02/22 职场文书
感谢信
2019/04/11 职场文书
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
2021/06/13 Python
MySQL中存储时间的最佳实践指南
2021/07/01 MySQL
在Python 中将类对象序列化为JSON
2022/04/06 Python