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判断一个集合是否包含了另外一个集合中所有项的方法
Jun 30 Python
Python使用爬虫猜密码
Feb 19 Python
python中日志logging模块的性能及多进程详解
Jul 18 Python
Python实现的科学计算器功能示例
Aug 04 Python
Python面向对象类的继承实例详解
Jun 27 Python
Python多进程池 multiprocessing Pool用法示例
Sep 07 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
Jun 13 Python
Python文件操作基础流程解析
Mar 19 Python
IntelliJ 中配置 Anaconda的过程图解
Jun 01 Python
Python中的整除和取模实例
Jun 03 Python
python中实现栈的三种方法
Dec 19 Python
Python 转移文件至云对象存储的方法
Feb 07 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 多个submit提交表单 处理方法
2009/07/07 PHP
php cli 小技巧
2013/06/03 PHP
PHP+Ajax实现验证码的实时验证
2016/07/20 PHP
laravel 自定义常量的两种方案
2019/10/14 PHP
juqery 学习之三 选择器 可见性 元素属性
2010/11/25 Javascript
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
jquery实现全选功能效果的实现代码
2016/05/05 Javascript
详解jQuery中的deferred对象的使用(一)
2016/05/27 Javascript
Javascript实现前端简单的路由实例
2016/09/11 Javascript
关于js原型的面试题讲解
2016/09/25 Javascript
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
Vue退出登录时清空缓存的实现
2019/11/12 Javascript
Vue 图片压缩并上传至服务器功能
2020/01/15 Javascript
微信小程序实现上传多个文件 超过10个
2020/03/30 Javascript
python执行shell获取硬件参数写入mysql的方法
2014/12/29 Python
Python使用scrapy采集数据过程中放回下载过大页面的方法
2015/04/08 Python
Python中time模块与datetime模块在使用中的不同之处
2015/11/24 Python
Python中防止sql注入的方法详解
2017/02/25 Python
tensorflow实现简单逻辑回归
2018/09/07 Python
python找出完数的方法
2018/11/12 Python
Python数据预处理之数据规范化(归一化)示例
2019/01/08 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
2019/08/22 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
2019/09/07 Python
使用PyTorch实现MNIST手写体识别代码
2020/01/18 Python
结束运行python的方法
2020/06/16 Python
Linux安装Python3如何和系统自带的Python2并存
2020/07/23 Python
详解使用Python写一个向数据库填充数据的小工具(推荐)
2020/09/11 Python
阿里健康大药房:阿里自营网上药店
2017/08/01 全球购物
英国第一豪华护肤品牌:Elemis
2017/10/12 全球购物
广州盈通面试题
2015/12/05 面试题
计算机开发个人求职信范文
2013/09/26 职场文书
公务员平时考核实施方案
2014/03/11 职场文书
小学班主任自我评价
2015/03/11 职场文书
生日寿星公答谢词
2015/09/29 职场文书
2016党校学习心得体会范文
2016/01/07 职场文书
python双向链表实例详解
2022/05/25 Python