python实现图片等比例缩小

该代码段定义了一个函数resize_image,它接受一个图片路径作为输入,然后使用PIL库打开图片。如果图片的宽度或高度超过指定的最大值,它会按比例缩小图片,保持原图宽高比,然后使用ANTIALIAS选项确保平滑缩放。最后,无论是否进行了缩放,都会将图片从JPG格式转换为PNG并保存。
摘要由CSDN通过智能技术生成

python PIL库实现图片等比例缩小,并由jpg格式转换为png格式图片

from PIL import Image
def resize_image(img_name_path,max_width=1500,max_height=800):
    """
    等比例缩小图片,并把jpg转为png格式
    :param img_name_path 图片路径
    :param max_width   缩小后的最大宽度
    :param max_height  缩小后的最大高度
    :return:
    """
    #获取原始尺寸图片
    image = Image.open(img_name_path)
    width = image.width  #获取图片原宽度
    height = image.height #获取图片原高度
    #宽度和高度有任意不符合我们给定的最大值,将缩小,否则直接转为png格式
    if max_width <= width or max_height <= height:
        #计算缩小比例
        ratio  = min(max_width/width,max_height/height)
        #计算缩小后的大小
        new_width = int(width * ratio)
        new_height = int(height * ratio)
        #使用PIL库中resize方法进行等比例缩小
        resize_img = image.resize((new_width,new_height),Image.ANTIALIAS)
        #保存更改之后的图片
        resize_img.save(img_name_path.replace('.jpg','.png'))
    else:
        image.save(img_name_path.replace('.jpg', '.png'))
if __name__ == '__main__':
    img_name = 'input.jpg'
    resize_image(img_name)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值