python图像等比缩放怎么实现

这篇文章主要讲解了“python图像等比缩放怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python图像等比缩放怎么实现”吧!

成都创新互联主要从事做网站、成都网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务云城,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108

说明

1、初始化目标尺寸的幕布,所有值都是一样的。

2、计算出放缩比例。

把原图中较长的边放缩到目标尺寸大小.

3、使短边也能按此比例放缩,得到的图片就不会变形。

4、缩放后的图像必须小于等于目标尺寸。

因此必须能够粘贴在幕布的中心,这样幕布中没有被覆盖的地方就会自动变成留白,省去了填充步骤。

5、得到想要的图片。

实例

import numpy as np
from PIL import Image
 
 
 
def resize(img, size):
    # 先创建一个目标大小的幕布,然后将放缩好的图片贴到中央,这样就省去了两边填充留白的麻烦。
    canvas = Image.new("RGB", size=size, color="#7777")  
    
    target_width, target_height = size
    width, height = img.size
    offset_x = 0
    offset_y = 0
    if height > width:              # 高 是 长边
        height_ = target_height     # 直接将高调整为目标尺寸
        scale = height_ / height    # 计算高具体调整了多少,得出一个放缩比例
        width_ = int(width * scale) # 宽以相同的比例放缩
        offset_x = (target_width - width_) // 2     # 计算x方向单侧留白的距离
    else:   # 同上
        width_ = target_width
        scale = width_ / width
        height_ = int(height * scale)
        offset_y = (target_height - height_) // 2
 
    img = img.resize((width_, height_), Image.BILINEAR) # 将高和宽放缩
    canvas.paste(img, box=(offset_x, offset_y))         # 将放缩后的图片粘贴到幕布上
    # box参数用来确定要粘贴的图片左上角的位置。offset_x是x轴单侧留白,offset_y是y轴单侧留白,这样就能保证能将图片填充在幕布的中央
    
    return canvas
 
 
img= Image.open('1.jpg')
 
target__size=(500,300)  # 目标尺寸:宽为500,高为300
res = resize(img,target__size)
 
res.save('new.jpg')

感谢各位的阅读,以上就是“python图像等比缩放怎么实现”的内容了,经过本文的学习后,相信大家对python图像等比缩放怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


网站标题:python图像等比缩放怎么实现
本文URL:http://azwzsj.com/article/ijsipi.html