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 相关文章推荐
flask中使用SQLAlchemy进行辅助开发的代码
Feb 10 Python
python发腾讯微博代码分享
Jan 10 Python
Python 2.7.x 和 3.x 版本的重要区别小结
Nov 28 Python
Python爬虫实例爬取网站搞笑段子
Nov 08 Python
详解Python自建logging模块
Jan 29 Python
浅述python2与python3的简单区别
Sep 19 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
Nov 20 Python
python 格式化输出百分号的方法
Jan 20 Python
Python实现企业微信机器人每天定时发消息实例
Feb 25 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
Jun 23 Python
Python random模块的使用示例
Oct 10 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 提取图片img标记中的任意属性的简单实例
2013/12/10 PHP
解决CodeIgniter伪静态失效
2014/06/09 PHP
php调用新浪短链接API的方法
2014/11/08 PHP
PHP函数extension_loaded()用法实例
2015/01/19 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
2016/02/26 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
2019/04/02 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
翻译整理的jQuery使用查询手册
2007/03/07 Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
2011/02/12 Javascript
jquery.ui.draggable中文文档(原文翻译)
2013/11/15 Javascript
jQuery遍历之next()、nextAll()方法使用实例
2014/11/08 Javascript
Javascript Object 对象学习笔记
2014/12/17 Javascript
JS实现table表格数据排序功能(可支持动态数据+分页效果)
2016/05/26 Javascript
JavaScript判断微信浏览器实例代码
2016/06/13 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
深入理解Angularjs中的$resource服务
2016/12/31 Javascript
Angular通过angular-cli来搭建web前端项目的方法
2017/07/27 Javascript
微信小程序实现动态设置页面标题的方法【附源码下载】
2017/11/29 Javascript
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
通过图带你深入了解vue的响应式原理
2019/06/21 Javascript
[51:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第二局
2016/03/03 DOTA
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
2013/12/04 Python
Python中使用SAX解析xml实例
2014/11/21 Python
Python3.5 创建文件的简单实例
2018/04/26 Python
python实现翻转棋游戏(othello)
2019/07/29 Python
python BlockingScheduler定时任务及其他方式的实现
2019/09/19 Python
PyQt5通过信号实现MVC的示例
2021/02/06 Python
深入了解canvas在移动端绘制模糊的问题解决
2019/04/30 HTML / CSS
JD Sports德国官网:英国领先的运动鞋和运动服饰零售商
2018/02/26 全球购物
"引用"与多态的关系
2013/02/01 面试题
品质管理部岗位职责范文
2014/03/01 职场文书
销售内勤岗位职责
2014/04/15 职场文书
三年级班级文化建设方案
2014/05/04 职场文书
社区党的群众路线教育实践活动总结材料
2014/10/31 职场文书