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之一个免费的实验室
Sep 14 Python
详解Python3操作Mongodb简明易懂教程
May 25 Python
Python基于time模块求程序运行时间的方法
Sep 18 Python
Python3实现的画图及加载图片动画效果示例
Jan 19 Python
python网络爬虫学习笔记(1)
Apr 09 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
May 30 Python
深入了解Python枚举类型的相关知识
Jul 09 Python
python爬虫学习笔记之pyquery模块基本用法详解
Apr 09 Python
PyCharm2019 安装和配置教程详解附激活码
Jul 31 Python
拿来就用!Python批量合并PDF的示例代码
Aug 10 Python
python 绘制场景热力图的示例
Sep 23 Python
pycharm 如何查看某一函数源码的快捷键
May 12 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 小乘法表实现代码
2009/07/16 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
2013/06/29 PHP
PHP类中的魔术方法(Magic Method)简明总结
2014/07/08 PHP
thinkphp3.2.3 分页代码分享
2016/07/28 PHP
js判断输入是否为正整数、浮点数等数字的函数代码
2010/11/17 Javascript
jquery插件制作教程 txtHover
2012/08/17 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
2015/12/26 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
基于jQuery实现定位导航位置效果
2017/11/15 jQuery
JavaScript模板引擎实现原理实例详解
2018/12/14 Javascript
浅析vue中的nextTick
2020/12/28 Vue.js
[04:48]DOTA2亚洲邀请赛林书豪为VGJ加油
2017/04/01 DOTA
flask中使用SQLAlchemy进行辅助开发的代码
2013/02/10 Python
pycharm 使用心得(一)安装和首次使用
2014/06/05 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
Python合并同一个文件夹下所有PDF文件的方法
2019/03/11 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
python pygame实现五子棋小游戏
2020/10/26 Python
Python列表对象实现原理详解
2019/07/01 Python
Python 仅获取响应头, 不获取实体的实例
2019/08/21 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
2020/06/05 Python
Python类super()及私有属性原理解析
2020/06/15 Python
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
五个2015 年最佳HTML5 框架
2015/11/11 HTML / CSS
买卖正宗运动鞋:GOAT
2019/12/06 全球购物
英国在线药房和在线药剂师:Chemist 4 U
2020/01/05 全球购物
如何实现jdbc性能优化
2012/07/30 面试题
外贸学院会计专业应届生求职信
2013/11/14 职场文书
毕业自我鉴定书
2014/03/24 职场文书
师德师风演讲稿
2014/05/05 职场文书
乳制品整治工作方案
2014/05/29 职场文书
家长会欢迎标语
2014/06/24 职场文书
医生爱岗敬业演讲稿
2014/08/26 职场文书
办理房产过户的委托书
2014/09/14 职场文书
如何使用Python提取Chrome浏览器保存的密码
2021/06/09 Python
MySQL 原理与优化之Limit 查询优化
2022/08/14 MySQL