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利用hook技术破解https的实例代码
Mar 25 Python
python 3.5下xadmin的使用及修复源码bug
May 10 Python
python爬虫入门教程--正则表达式完全指南(五)
May 25 Python
Pandas DataFrame 取一行数据会得到Series的方法
Nov 10 Python
Python面向对象之类的定义与继承用法示例
Jan 14 Python
PyTorch搭建多项式回归模型(三)
May 22 Python
python SQLAlchemy的Mapping与Declarative详解
Jul 04 Python
Python解压 rar、zip、tar文件的方法
Nov 19 Python
Pytorch DataLoader 变长数据处理方式
Jan 08 Python
Jupyter Notebook打开任意文件夹操作
Apr 14 Python
Python更换pip源方法过程解析
May 19 Python
Python3爬虫中Selenium的用法详解
Jul 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后门
2015/09/13 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
学习php设计模式 php实现桥梁模式(bridge)
2015/12/07 PHP
浅谈PHP中的错误处理和异常处理
2017/02/04 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
2020/01/23 PHP
jquery中的sortable排序之后的保存状态的解决方法
2010/01/28 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
很棒的Bootstrap选项卡切换效果
2016/07/01 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
2016/12/13 Javascript
js实现五星评价功能
2017/03/08 Javascript
jQuery弹出窗口简单实现代码
2017/03/09 Javascript
JS中使用正则表达式g模式和非g模式的区别
2017/04/01 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
JS简单生成随机数(随机密码)的方法
2017/05/11 Javascript
Vue生命周期activated之返回上一页不重新请求数据操作
2020/07/26 Javascript
vue keep-alive的简单总结
2021/01/25 Vue.js
常见python正则用法的简单实例
2016/06/21 Python
Python实现的文本简单可逆加密算法示例
2017/05/18 Python
Python将string转换到float的实例方法
2019/07/29 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
Python Django搭建网站流程图解
2020/06/13 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
CSS3新增布局之: flex详解
2020/06/18 HTML / CSS
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
使用layui实现左侧菜单栏及动态操作tab项的方法
2020/11/10 HTML / CSS
香港连卡佛百货官网:Lane Crawford
2019/09/04 全球购物
Expedia瑞典官网:预订度假屋、酒店、汽车租赁、机票等
2021/01/23 全球购物
商场消防管理制度
2014/01/12 职场文书
总经理岗位职责范本
2014/02/02 职场文书
化妆品店促销方案
2014/02/24 职场文书
新学期红领巾广播稿
2014/10/04 职场文书
十八大标语口号
2014/10/09 职场文书
2014年班务工作总结
2014/12/02 职场文书
公司员工体检通知
2015/04/21 职场文书
数学复习课教学反思
2016/02/18 职场文书
Nginx+Tomcat负载均衡集群的实现示例
2021/10/24 Servers