首页 >后端开发 >Python教程 >使用 PIL 调整图像大小时如何保持宽高比?

使用 PIL 调整图像大小时如何保持宽高比?

DDD
DDD原创
2024-12-06 18:29:14569浏览

How to Maintain Aspect Ratio When Resizing Images with PIL?

使用 PIL 调整图像大小时保留宽高比

在 Python 图像库 (PIL) 中,可以在保持图像宽高比的同时调整图像大小通过具体计算得出。创建缩略图时,保持图像的原始比例至关重要。

解决方案:

  1. 定义最大尺寸:确定调整大小后的图像的最大尺寸。
  2. 计算调整大小比例: 通过取(最大宽度/原始宽度)和(最大高度/原始高度)中的最小值来计算比率。
  3. 确定合适的尺寸: 乘以原始尺寸通过计算的比例来调整图像以获得适当的尺寸以调整大小。

为了简单起见,PIL 提供了在保留纵横比的同时处理调整大小的 Image.thumbnail 方法:

import os, sys
from PIL import Image

size = (128, 128) # Desired thumbnail size

for infile in sys.argv[1:]:
    outfile = os.path.splitext(infile)[0] + ".thumbnail"
    if infile != outfile:
        try:
            im = Image.open(infile)
            im.thumbnail(size, Image.Resampling.LANCZOS)
            im.save(outfile, "JPEG")
        except IOError:
            print(f"Cannot create thumbnail for '{infile}'")

在此脚本中,使用 Lanczos 重采样将图像大小调整为 (128, 128) 的缩略图大小,以提高图像质量。

以上是使用 PIL 调整图像大小时如何保持宽高比?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn