当前位置: 首页 > 图灵资讯 > 行业资讯> python如何实现图像等比缩放

python如何实现图像等比缩放

来源:图灵python
时间: 2024-06-27 19:22:41

说明

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

2、计算放缩比例。

将原图中较长的边缘缩小到目标尺寸.

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

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

因此,必须能够粘贴在窗帘的中心,这样窗帘中没有覆盖的地方就会自动变成空白,节省填充步骤。

5、得到你想要的图片。

实例

importnumpyasnp
fromPILimportImage



defresize(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
ifheight>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轴单侧的空白,可以保证图片可以填充在幕布的中央

returncanvas


img=Image.open('1.jpg')

target__size=(500,300)#目标尺寸:宽500,高为300
res=resize(img,target__size)

res.save('new.jpg')

以上是python实现图像等比缩放的方法,希望对大家有所帮助。更多Python学习指导:python基础教程

本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。