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函数执行前后增加额外的行为
Oct 20 Python
Django的信号机制详解
May 05 Python
python运用sklearn实现KNN分类算法
Oct 16 Python
python基于gevent实现并发下载器代码实例
Nov 01 Python
基于python及pytorch中乘法的使用详解
Dec 27 Python
通过实例解析Python return运行原理
Mar 04 Python
解决Python数据可视化中文部分显示方块问题
May 16 Python
python集合能干吗
Jul 19 Python
pycharm如何使用anaconda中的各种包(操作步骤)
Jul 31 Python
python使用numpy中的size()函数实例用法详解
Jan 29 Python
教你使用pyinstaller打包Python教程
May 27 Python
python热力图实现的完整实例
Jun 25 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中http与https跨域共享session的解决方法
2014/12/20 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
PHP下载远程图片并保存到本地方法总结
2016/01/22 PHP
在网页中使用document.write时遭遇的奇怪问题
2010/08/24 Javascript
神奇的7个jQuery 3D插件整理
2011/01/06 Javascript
超轻量级的基于jquery的三级展开列表
2011/04/26 Javascript
一些实用的jQuery代码片段收集
2011/07/12 Javascript
alert中断settimeout计时功能
2013/07/26 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
AngularJS中的模块详解
2015/01/29 Javascript
EasyUI中datagrid在ie下reload失败解决方案
2015/03/09 Javascript
Node.js实现JS文件合并小工具
2016/02/02 Javascript
jQuery+formdata实现上传进度特效遇到的问题
2016/02/24 Javascript
AngularJS通过$location获取及改变当前页面的URL
2016/09/23 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
基于nodejs+express4.X实现文件下载的实例代码
2017/07/13 NodeJs
详解JS构造函数中this和return
2017/09/16 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
如何自定义微信小程序tabbar上边框的颜色
2019/07/09 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
微信小程序实现比较功能的方法汇总(五种方法)
2020/03/07 Javascript
Python中利用sqrt()方法进行平方根计算的教程
2015/05/15 Python
Python Pandas找到缺失值的位置方法
2018/04/12 Python
程序员写Python时的5个坏习惯,你有几条?
2018/11/26 Python
python实现两个文件夹的同步
2019/08/29 Python
python 制作磁力搜索工具
2021/03/04 Python
中国包裹转运寄送国际服务:Famiboat
2019/07/24 全球购物
应届毕业生如何写求职信
2014/02/16 职场文书
预备党员表决心书
2014/03/11 职场文书
自我鉴定总结
2014/03/24 职场文书
党委班子纠正“四风”问题整改措施
2014/10/28 职场文书
教师“一帮一”结对子活动总结
2015/05/07 职场文书
干部考核工作总结2015
2015/07/24 职场文书
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers