欢迎访问宙启技术站
智能推送

通过Python的Scale()函数实现图片尺寸的等比缩放

发布时间:2024-01-04 02:36:26

在Python中,可以使用PIL(Python Imaging Library)库中的Image模块来操作图片。Image模块提供了resize方法来对图片进行尺寸调整,其中包括等比缩放。

首先需要安装Pillow,这是PIL库的一个分支,它提供了一些额外的功能和改进。可以使用以下命令来安装Pillow

pip install pillow

在安装完Pillow之后,可以编写一个函数来实现图片的等比缩放:

from PIL import Image

def scale_image(input_image_path, output_image_path, max_size):
    original_image = Image.open(input_image_path)
    width, height = original_image.size

    # 计算新的尺寸
    if width > height:
        new_width = max_size
        new_height = int(max_size * height / width)
    else:
        new_width = int(max_size * width / height)
        new_height = max_size

    # 使用resize方法来缩放图片
    resized_image = original_image.resize((new_width, new_height))
    
    # 保存缩放后的图片
    resized_image.save(output_image_path)

上面的函数scale_image接受三个参数:输入图片的路径input_image_path,输出图片的路径output_image_path,以及最大尺寸max_size(此参数会根据图片的宽高比来进行等比缩放,确保最终图片不会超过此尺寸)。

下面是一个使用例子:

input_image_path = "input.jpg"
output_image_path = "output.jpg"
max_size = 800

scale_image(input_image_path, output_image_path, max_size)

在上面的例子中,我们将名为input.jpg的图片等比缩放到最大尺寸为800,然后将缩放后的图片保存为output.jpg

注意,scale_image函数还负责计算新的尺寸,以确保缩放后的图片不会超过最大尺寸。其中的等比缩放公式如下所示:

if width > height:
    new_width = max_size
    new_height = int(max_size * height / width)
else:
    new_width = int(max_size * width / height)
    new_height = max_size

以上就是使用Python的Pillow库实现图片尺寸等比缩放的示例代码。你可以根据自己的需求在scale_image函数中进行一些调整,比如修改缩放比例、改变输出图片的格式等。