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 06 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
May 16 Python
Python 中pandas.read_excel详细介绍
Jun 23 Python
python实现员工管理系统
Jan 11 Python
python图像处理入门(一)
Apr 04 Python
用pyqt5 给按钮设置图标和css样式的方法
Jun 24 Python
postman模拟访问具有Session的post请求方法
Jul 15 Python
关于Python3 类方法、静态方法新解
Aug 30 Python
利用Python代码实现一键抠背景功能
Dec 29 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
Feb 05 Python
tf.concat中axis的含义与使用详解
Feb 07 Python
Python 的 sum() Pythonic 的求和方法详细
Oct 16 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编程注意事项的小结
2013/04/27 PHP
PHP中的插件机制原理和实例
2014/07/08 PHP
thinkphp在模型中自动完成session赋值示例代码
2014/09/09 PHP
php采用ajax数据提交post与post常见方法总结
2014/11/10 PHP
PHP hebrev()函数用法讲解
2019/02/21 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
Extjs学习笔记之六 面版
2010/01/08 Javascript
JavaScript如何从listbox里同时删除多个项目
2013/10/12 Javascript
jQuery+ajax实现动态执行脚本的方法
2015/01/27 Javascript
js获取元素外链样式的方法
2015/01/27 Javascript
js点击选择文本的方法
2015/02/09 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
2016/06/15 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
JSONP原理及应用实例详解
2018/09/13 Javascript
优雅的elementUI table单元格可编辑实现方法详解
2018/12/23 Javascript
微信小程序获取当前位置和城市名
2019/11/13 Javascript
[44:30]完美世界DOTA2联赛PWL S2 GXR vs Magma 第一场 11.25
2020/11/26 DOTA
Python发送email的3种方法
2015/04/28 Python
python使用opencv对图像mask处理的方法
2019/07/05 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
2019/12/27 Python
python图片剪裁代码(图片按四个点坐标剪裁)
2020/03/10 Python
python写文件时覆盖原来的实例方法
2020/07/22 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
澳大利亚儿童精品仓库:Goo & Co.
2019/06/20 全球购物
体育专业个人的求职信范文
2013/09/21 职场文书
应届医学毕业生求职信分享
2013/12/02 职场文书
美发店5.1活动方案
2014/01/24 职场文书
广告语设计及教案
2014/03/21 职场文书
师德模范事迹材料
2014/06/03 职场文书
2015年测量员工作总结
2015/05/23 职场文书
2016年情人节广告语
2016/01/28 职场文书
《7的乘法口诀》教学反思
2016/02/18 职场文书
读《解忧杂货店》有感:请相信一切都是最好的安排
2019/11/07 职场文书
PyTorch的Debug指南
2021/05/07 Python
微信小程序用户授权最佳实践指南
2021/05/08 Javascript