You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用pyvips将图片调整到指定的宽高尺寸

pyvips指定宽高缩放的实现方法

完全可以实现该需求,常用两种实现方式:

方式1:手动计算缩放比例配合resize方法

适合需要自定义缩放、裁剪/补边逻辑的场景,步骤如下:

  • 读取图片,获取原始宽高参数
import pyvips
# 读取图片,sequential模式适合单流程处理,读取速度更快
img = pyvips.Image.new_from_file("你的输入图片路径", access="sequential")
original_width = img.width
original_height = img.height
target_width = 你需要的宽度
target_height = 你需要的高度
  • 计算缩放比例:
    • 等比例不拉伸场景:取宽高缩放比的较小值,保证缩放后的图片完全覆盖目标尺寸或者完全适配目标尺寸,之后再按需裁剪多余部分或者添加padding补边
    • 允许拉伸场景:分别计算宽高缩放比,直接调用resize和vscale分别对水平和垂直方向做缩放
  • 处理完成后保存即可:img.write_to_file("你的输出图片路径")

方式2:直接调用内置thumbnail方法(更推荐)

pyvips内置的thumbnail方法原生支持直接指定目标宽高,不需要手动计算比例,还会自动处理EXIF旋转信息,适配性更强:

  • 等比例缩放,输出尺寸不超过指定宽高(默认行为):
resized_img = pyvips.Image.thumbnail("你的输入图片路径", target_width, height=target_height)
  • 强制拉伸,完全匹配指定宽高:
resized_img = pyvips.Image.thumbnail("你的输入图片路径", target_width, height=target_height, size="force")
  • 等比例缩放后居中裁剪,刚好填充指定宽高:
resized_img = pyvips.Image.thumbnail("你的输入图片路径", target_width, height=target_height, crop="centre")

内容的提问来源于stack exchange,提问作者d4riush

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:00:01