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编码时应该注意的几个情况
Mar 04 Python
Python Web框架Pylons中使用MongoDB的例子
Dec 03 Python
python三元运算符实现方法
Dec 17 Python
Python HTMLParser模块解析html获取url实例
Apr 08 Python
pymongo为mongodb数据库添加索引的方法
May 11 Python
python对配置文件.ini进行增删改查操作的方法示例
Jul 28 Python
深入理解python中函数传递参数是值传递还是引用传递
Nov 07 Python
django表单实现下拉框的示例讲解
May 29 Python
初次部署django+gunicorn+nginx的方法步骤
Sep 11 Python
Pycharm中使用git进行合作开发的教程详解
Nov 17 Python
Python3利用openpyxl读写Excel文件的方法实例
Feb 03 Python
pandas DataFrame.shift()函数的具体使用
May 24 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入门学习知识点二 PHP简单的分页过程与原理
2011/07/14 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
2014/06/19 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
PHP模拟post提交数据方法汇总
2016/02/16 PHP
PHP实现的常规正则验证helper公共类完整实例
2017/04/27 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
Javascript中的Split使用方法与技巧
2007/03/09 Javascript
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
jquery ajax例子返回值详解
2012/09/11 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例
2013/12/08 Javascript
JsRender for index循环索引用法详解
2014/10/31 Javascript
html的DOM中Event对象onabort事件用法实例
2015/01/21 Javascript
JavaScript获取当前url根目录(路径)
2016/06/17 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
2016/11/09 Javascript
webpack配置之后端渲染详解
2017/10/26 Javascript
vue中使用iview自定义验证关键词输入框问题及解决方法
2018/03/26 Javascript
新手快速入门JavaScript装饰者模式与AOP
2019/06/24 Javascript
web.py在SAE中的Session问题解决方法(使用mysql存储)
2015/06/24 Python
python 容器总结整理
2017/04/04 Python
Python实现修改IE注册表功能示例
2018/05/10 Python
python绘制圆柱体的方法
2018/07/02 Python
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
python中的subprocess.Popen()使用详解
2019/12/25 Python
幼儿园毕业园长感言
2014/02/24 职场文书
购房意向书
2014/08/30 职场文书
学校班子个人对照检查材料思想汇报
2014/09/27 职场文书
世界红十字日活动总结
2015/02/10 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
酒店温馨提示语
2015/07/14 职场文书
情感电台广播稿
2015/08/18 职场文书
2016年“6.26”禁毒宣传月系列活动总结
2016/04/05 职场文书
PyTorch的Debug指南
2021/05/07 Python
SQL Server查询某个字段在哪些表中存在
2022/03/03 SQL Server