Python PIL图片怎么按比例裁剪
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,这篇文章主要介绍"Python PIL图片怎么按比例裁剪",在日常操作中,相信很多人在Python PIL图片怎么按比例裁剪问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2025年11月06日Python PIL图片怎么按比例裁剪
这篇文章主要介绍"Python PIL图片怎么按比例裁剪",在日常操作中,相信很多人在Python PIL图片怎么按比例裁剪问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Python PIL图片怎么按比例裁剪"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
PIL图片如何按比例裁剪
问题描述
如图片比例为 1:1 裁剪为 4:3
1.jpg
解决方案
from PIL import Imagedef image_clip(filename, savename, width_scale, height_scale): """图像裁剪 :param filename: 原图路径 :param savename: 保存图片路径 :param width_scale: 宽的比例 :param height_scale: 高的比例 """ image = Image.open(filename) (width, height), (_width, _height) = image.size, image.size _height = width / width_scale * height_scale if _height > height: _height = height _width = width_scale * height / height_scale image.crop((0, 0, _width, _height)).save(savename) # 左上角 # image.crop((0, height - _height, _width, height)).save(savename) # 左下角 # image.crop((width - _width, 0, width, _height)).save(savename) # 右上角 # image.crop((width - _width, height - _height, width, height)).save(savename) # 右下角if __name__ == '__main__': filename = '1.jpg' savename = 'result.jpg' image_clip(filename, savename, width_scale=4, height_scale=3) # image_clip(filename, savename, width_scale=3, height_scale=4)
效果
PIL调整图片大小
使用 PIL 在图片比例不变的情况下修改图片大小。
介绍
Image.resize
def resize(self, size, resample=BICUBIC, box=None, reducing_gap=None): """ Returns a resized copy of this image. 返回此图像的大小调整后的副本。 :param size: The requested size in pixels, as a 2-tuple: (width, height). param size: 请求的大小(以像素为单位),是一个二元数组:(width, height) :param resample: An optional resampling filter. This can be one of :py:attr:`PIL.Image.NEAREST`, :py:attr:`PIL.Image.BOX`, :py:attr:`PIL.Image.BILINEAR`, :py:attr:`PIL.Image.HAMMING`, :py:attr:`PIL.Image.BICUBIC` or :py:attr:`PIL.Image.LANCZOS`. Default filter is :py:attr:`PIL.Image.BICUBIC`. If the image has mode "1" or "P", it is always set to :py:attr:`PIL.Image.NEAREST`. See: :ref:`concept-filters`. param resample: 一个可选的重采样过滤器。 :param box: An optional 4-tuple of floats providing the source image region to be scaled. The values must be within (0, 0, width, height) rectangle. If omitted or None, the entire source is used. param box: 可选的4元浮点数,提供要缩放的源映像区域。 :param reducing_gap: Apply optimization by resizing the image in two steps. First, reducing the image by integer times using :py:meth:`~PIL.Image.Image.reduce`. Second, resizing using regular resampling. The last step changes size no less than by ``reducing_gap`` times. ``reducing_gap`` may be None (no first step is performed) or should be greater than 1.0. The bigger ``reducing_gap``, the closer the result to the fair resampling. The smaller ``reducing_gap``, the faster resizing. With ``reducing_gap`` greater or equal to 3.0, the result is indistinguishable from fair resampling in most cases. The default value is None (no optimization). param reducing_gap: 通过两个步骤调整图像大小来应用优化。 :returns: An :py:class:`~PIL.Image.Image` object. returns: 返回一个 PIL.Image.Image 对象 """
看代码吧
from PIL import Image image = Image.open('图片路径') # 调整图片大小,并保持比例不变# 给定一个基本宽度base_width = 50 # 基本宽度与原图宽度的比例w_percent = base_width / float(image.size[0]) # 计算比例不变的条件下新图的长度h_size = int(float(image.size[1]) * float(w_percent)) # 重新设置大小# 默认情况下,PIL使用Image.NEAREST过滤器进行大小调整,从而获得良好的性能,但质量很差。image = image.resize((base_width, h_size), Image.ANTIALIAS)到此,关于"Python PIL图片怎么按比例裁剪"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
图片
比例
大小
调整
学习
图像
宽度
路径
原图
情况
更多
过滤器
问题
帮助
实用
良好
接下来
两个
代码
像素
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
清空数据库表中的部分数据
杭州好的模具制造管理软件开发
网络安全法 山西
湖南华虹网络技术
网络安全身份认证系统论文
数据库的管理需要哪些技术
北京航天拓扑软件开发面试
数据库中文查询效率
专科学软件开发专升本
数据库技术研究生好就业吗
观致软件开发
进不去ea服务器
鲁南制药软件开发题库
最大服务器内存
pppoe服务器路由
成都优推互联网科技有限公司
网络安全问卷调查的题目
用什么软件查看数据库文件
力控ado无法打开数据库
鸿蒙开发欧拉服务器
数据库怎么写timestamp
三峡大坝服务器抓鸡
c 计算机软件开发招聘信息
论腾讯科技公司与互联网的关系
北京航天拓扑软件开发面试
云端数据库和数据库的区别
数据库公式用途
数据库常见的字段名
银行软件开发中心笔试题
徐州再出发网络技术公司