Python图像处理库crop()函数 thumbnail方法使用详解
作者:实力 发布时间:2022-12-26 05:57:46
PIL和Pillow
PIL(Python Image Library)是一个非常流行的Python图像处理库,但自从2011年以来就没有更新了。由于此原因,Pillow出现了,它是PIL的替代品,它承载了与PIL相同的接口和功能,并进行了很多改进和增强。 本文中我们将使用Pillow库。
crop()函数
crop()函数是Pillow库中非常常用的函数之一,它可用于无损剪裁图片。首先需要导入Pillow库:
from PIL import Image
然后,我们可以使用open()函数来打开文件:
image = Image.open('example.png')
接下来,假设我们想要裁剪图片的中间部分。 我们可以使用crop()函数来实现:
width, height= image.size
new_width = width//2
new_height = height//2
box = (new_width-100, new_height-100, new_width+100, new_height+100)
cropped_image = image.crop(box)
crop()函数的参数是一个元组型的四个整数列表,表示要裁剪的矩形区域的左上角和右下角坐标。 四个整数分别是左上角的x坐标,左上角的y坐标,右下角的x坐标和右下角的y坐标。 在此示例中,我们将图像裁剪为宽度和高度的一半,并选择中心部分向外裁剪100个像素。
最后,我们可以使用save()函数将新的裁剪图像保存到本地:
cropped_image.save('cropped_example.png')
thumbnail方法
thumbnail()方法可用于无损压缩图片大小。与crop()函数类似,我们需要首先导入Pillow库并打开文件。
from PIL import Image
image = Image.open('example.png')
我们可以使用thumbnail()方法来将图片调整为指定尺寸:
size = 128, 128
resized_image = image.thumbnail(size)
这里,我们将“ size”参数设置为 (128,128),表示输出图像大小为 128 像素 x 128 像素。由于thumbnail()方法不会更改原始图像,所以我们需要将其返回到另一个变量中。
最后,我们可以使用save()函数将新的裁剪图像保存到本地:
resized_image.save('thumbnail_example.png')
值得注意的是,thumbnail()方法可能会在运行时更改图像的长宽比。在使用thumbnail()之前,请确保你是否需要保留图像的高宽比。
我们还可以使用thumbnail()方法与变量“ percent”配合使用,将图像大小缩小为原始大小的一定百分比:
percent = 50
resized_image = image.thumbnail((image.size[0] * percent / 100, image.size[1] * percent / 100))
这里,我们将“ size”参数设置为 (image.size[0] * percent/100, image.size[1] * percent/100),它会将图像的长和宽都减小到原始大小的 50%。
来源:https://juejin.cn/post/7223670680826413113
猜你喜欢
- 用yum更新PHP,只需用一条命令就可以搞定: #yum update php 但问题来了,使用此命令后,系统告诉我,没有发现可更新的包。而
- 一、说明压缩和解压缩是日常常用的操作,不管是windows上图形界面的操作,还是linux上用命令来进行压缩解压缩,总的而言都还是比较方便的
- Update Scanner这个Firefox附加软件也是一种很好的选择。Update Scanner可以同时跟踪多个网页,并为不同的网页设
- 一、总结apply —— 应用在 dataFrame 上,用于对 row 或者 column 进行计算applymap —— 应用在 dat
- UDP 套接字是可以使用 connect 系统调用连接到指定的地址的。从此以后,这个套接字只会接收来自这个地址的数据,而且可以使用 send
- 正文首先得说明的是,Python的类分为经典类 和 新式类经典类是python2.2之前的东西,但是在2.7还在兼容,但是在3之后的版本就只
- 提高SQL执行效率的几点建议:◆尽量不要在where中包含子查询;关于时间的查询,尽量不要写成:where to_char(dif_date
- 在写论文时,如果是菜鸟级别,可能不会花太多时间去学latex,直接用word去写,但是这有一个问题,当我们用其他工具画完实验彩 * 时,放到w
- 题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。思路:1、把每层节点的val值用list存好2、把每层节点存好:①计
- asp中使用addnew方法添加一条记录后,我们经常使用取得自递增的ID,而使用bookmark很容易实现这样的功能。rs.open&nbs
- python matplotlib画图使用colorbar工具自定义颜色 colorbar(draw colorbar without an
- 使用python可以对windows系统的音量进行读取或者设置。平台:visual studio code语言:python需要的pytho
- 本文实例为大家分享了python实现简单俄罗斯方块游戏的具体代码,供大家参考,具体内容如下import pygame,sys,random,
- 使用递归实现words = ['giraffe', 'elephant', 'ant', &
- 二分类问题可能是应用最广泛的机器学习问题。今天我们将学习根据电影评论的文字内容将其划分为正面或负面。一、数据集来源我们使用的是IMDB数据集
- 1.写作背景Tensorflow官方在2018年宣布,正式发布支持树莓派版本的Tensorflow,编者开始直接用:pip install
- 本文实例讲述了php基于PDO实现功能强大的MYSQL封装类。分享给大家供大家参考,具体如下:class CPdo{ protected $
- pip源配置文件可以放置的位置:Linux/Unix:/etc/pip.con~/.pip/pip.conf (每一个我都找了都没有,所以我
- 记得自己学习的心得,为了自己以后调试方便些。1.操作步骤:1.1 添加断点直接在标记处点击鼠标左键即可。(删除断点只需再点击断点处即可)1.
- 1 前言在工作中时常会有繁重的文案工作,接触了python 之后,就会觉得这个比较简单了,python 操作word 和 excel 是比较