Python图像处理库PIL的ImageGrab模块介绍详解
作者:icamera0 发布时间:2023-11-16 18:22:11
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如下:
图像im0如下:
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中的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()
来源:https://blog.csdn.net/icamera0/article/details/50763010
猜你喜欢
- 一、环境要求windows系统,python3.6+安装模块pip install pyqt5pip install pygame二、游戏介
- 请教:如何在现存的文档中动态嵌入一段JS?如果是一段CSS呢?创建一个<script></script>并在scri
- 以下针对Ubuntu系统,Windows系统没有测试过。Ubuntu中默认就安装有Python 2.x和Python 3.x,默认情况下py
- 本人 python新手,使用的环境是python2.7,勿喷# -*- coding:utf8 -*-import random
- 由于requests是http类接口的核心,因此封装 * 虑问题比较多:1. 对多种接口类型的支持;2. 连接异常时能够重连;3. 并发处理的
- 只要把下面代码放到index.asp或者default.asp中,只要在首页代码顶部引用call Check_Wap(),这个也是我的工程中
- 简介:破解rar和zip压缩包。Windows下使用PyCharm软件。1.步骤1.环境指令pip install 安装。如果是rar文件需
- IntelliJ IDEA 2020.1 插件中心一直打不开,鉴于有部分同学反馈设置http proxy不能解决,所以可按以下顺序检查一、设
- 阅读上一篇教程:WEB2.0网页制作标准教程(7)CSS学习入门 CSS布局与传统表格(table)布局最大的区别在于:原来的定位都是采用表
- 今天来说说鄙人对input输入框在处理上的细节处理和心得,其实制作一个符合CSS标准、FF/IE7/IE6等主流浏览器全兼容、符合用户体验的
- SQL Server内存会不断增加当 SQL Server 数据库引擎在 Microsoft? Windows NT? 或 Windows?
- 本文介绍了详解TensorFlow在windows上安装与简单示例,分享给大家,具体如下:安装说明平台:目前可在Ubuntu、Mac OS、
- python使用pandas和xlsxwriter读写xlsx文件已有xlsx文件如下:1. 读取前n行所有数据# coding: utf-
- 使用continue跳过本次写循环就可以了#文本内容Yesterday when I was young昨日当我年少轻狂The tastin
- 模块导入方式: import osos模块是Python标准库中的一个用于访问操作系统相关功能的模块,os模块提供了一种可移植的使
- js给span标签赋值的方法?一般有两种方法:第一种方法:输出html<body onload="s()">
- 在MySQL服务器启动时,它检查其命令行的操作,来查看它是否应该执行登录并打开相应的日志文件(如果应该的话)。可以让服务器生成两种主要类型的
- 1.plt.pie()饼图 常常用来显示 整体中各部分所占的比例,在python-matplotlib库中通过plt.pie()方法来实现。
- list1 和list2 两个list , 想要得到list1是不是包含 list2 (是不是其子集 )a = [1,2] b = [1,2
- 主要是:前序遍历、中序遍历、后序遍历、层级遍历、非递归前序遍历、非递归中序遍历、非递归后序遍历#!/usr/bin/env python#-