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 相关文章推荐
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
Apr 16 Python
Python从MP3文件获取id3的方法
Jun 15 Python
详解Python编程中基本的数学计算使用
Feb 04 Python
Python3使用requests包抓取并保存网页源码的方法
Mar 15 Python
Python中list查询及所需时间计算操作示例
Jun 21 Python
Python走楼梯问题解决方法示例
Jul 25 Python
Python读取txt内容写入xls格式excel中的方法
Oct 11 Python
在IPython中执行Python程序文件的示例
Nov 01 Python
Python使用ctypes调用C/C++的方法
Jan 29 Python
Python如何使用函数做字典的值
Nov 30 Python
Python中的全局变量如何理解
Jun 04 Python
Python学习工具jupyter notebook安装及用法解析
Oct 23 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编程最快明白》第四讲:日期、表单接收、session、cookie
2010/11/01 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
2012/01/20 PHP
php对大文件进行读取操作的实现代码
2013/01/23 PHP
ThinkPHP多语言支持与多模板支持概述
2014/08/22 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
2016/03/17 PHP
CL vs ForZe BO5 第一场 2.13
2021/03/10 DOTA
在每个匹配元素的外部插入新元素的方法
2013/12/20 Javascript
Javascript基础教程之数据类型 (字符串 String)
2015/01/18 Javascript
详解Jquery Easyui的验证扩展
2017/01/09 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
NodeJS自定义模块写法(详解)
2017/06/27 NodeJs
JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
2017/09/23 jQuery
详解用Node.js实现Restful风格webservice
2017/09/29 Javascript
在vue中使用SockJS实现webSocket通信的过程
2018/08/29 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
Vue Render函数创建DOM节点代码实例
2020/07/08 Javascript
[02:09]DOTA2辉夜杯 EHOME夺冠举杯现场
2015/12/28 DOTA
[01:00:14]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第二场 2月28日
2021/03/11 DOTA
Python标准库与第三方库详解
2014/07/22 Python
Python入门篇之字典
2014/10/17 Python
python使用pil生成图片验证码的方法
2015/05/08 Python
Python3实现从文件中读取指定行的方法
2015/05/22 Python
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
Python 操作MySQL详解及实例
2017/04/30 Python
pytorch permute维度转换方法
2018/12/14 Python
Python 实现子类获取父类的类成员方法
2019/01/11 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
Django 返回json数据的实现示例
2020/03/05 Python
利用Python自动化操作AutoCAD的实现
2020/04/01 Python
基于Modernizr 让网站进行优雅降级的分析
2013/04/21 HTML / CSS
美国网上眼镜商城:Zenni Optical
2016/11/20 全球购物
师范毕业生个人求职信
2013/12/09 职场文书
白酒代理协议书范本
2014/10/26 职场文书
win10键盘驱动怎么修复?Win10键盘驱动修复小技巧
2022/04/06 数码科技