位置: IT常识 - 正文
推荐整理分享python如何实现图像等比缩放(python的图),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:python绘制图片,python 做图,python如何作图,python 做图,python 图,python 图,python如何作图,python如何作图,内容如对您有帮助,希望把文章链接给更多的朋友!
说明
1、初始化目标尺寸的幕布,所有值都是一样的。
2、计算出放缩比例。
把原图中较长的边放缩到目标尺寸大小.
3、使短边也能按此比例放缩,得到的图片就不会变形。
4、缩放后的图像必须小于等于目标尺寸。
因此必须能够粘贴在幕布的中心,这样幕布中没有被覆盖的地方就会自动变成留白,省去了填充步骤。
5、得到想要的图片。
实例
importnumpyasnpfromPILimportImagedefresize(img,size):#先创建一个目标大小的幕布,然后将放缩好的图片贴到中央,这样就省去了两边填充留白的麻烦。canvas=Image.new("RGB",size=size,color="#7777")target_width,target_height=sizewidth,height=img.sizeoffset_x=0offset_y=0ifheight>width:#高是长边height_=target_height#直接将高调整为目标尺寸scale=height_/height#计算高具体调整了多少,得出一个放缩比例width_=int(width*scale)#宽以相同的比例放缩offset_x=(target_width-width_)//2#计算x方向单侧留白的距离else:#同上width_=target_widthscale=width_/widthheight_=int(height*scale)offset_y=(target_height-height_)//2img=img.resize((width_,height_),Image.BILINEAR)#将高和宽放缩canvas.paste(img,box=(offset_x,offset_y))#将放缩后的图片粘贴到幕布上#box参数用来确定要粘贴的图片左上角的位置。offset_x是x轴单侧留白,offset_y是y轴单侧留白,这样就能保证能将图片填充在幕布的中央returncanvasimg=Image.open('1.jpg')target__size=(500,300)#目标尺寸:宽为500,高为300res=resize(img,target__size)res.save('new.jpg')以上就是python实现图像等比缩放的方法,希望对大家有所帮助。更多Python学习指路:Python基础教程
上一篇:Erphpdown 插件使用教程(erphpdown插件安装教程)
下一篇:Discuz主题浏览量实现原理和不更新的解决方案(discuz 首页设置)
友情链接: 武汉网站建设