利用ImageOps调整图片的Aspect Ratio(给图片添加borders)

# -*- coding: utf-8 -*-

#********************
# 改变图片的纵横比(aspect retio)
# 使用ImageOps.expand()
# ImageOps.expand(img,border=300,fill='black')
# border :四个border的宽度一致时,border是宽度
# ImageOps.expand(img,(4,4,8,8),fill='white')
# (4,4,8,8)  ---> left, top, right and bottom borders.
# 4--left:表示左上角像素点距最终图左边的像素宽度 ---左边border的宽度
# 4--top:表示左上角像素点距最终图上边的像素宽度 --- 上边border的宽度
# 8--right:表示右下角像素点距最终图右边的像素宽度 --- 右边border的宽度
# 8--bottom:表示右下角像素点距最终图下边的像素宽度 --- 下面border的宽度
#********************

from PIL import Image,ImageOps
  
path =  'C:/Users/mengyi/Desktop/1.jpg'
path_save = 'C:/Users/mengyi/Desktop/2_broder.jpg'

img = Image.open(path)
#print img.size

#img_with_border = ImageOps.expand(img,(4,4,4,4),fill='white')
img_with_border = ImageOps.expand(img,border=4,fill='white')
#print img_with_border.size

img_with_border.save(path_save)
img_with_border.show()

使用PIL模块下的ImageOps.expand()函数完成

1. img_with_border = ImageOps.expand(img,(4,4,4,4),fill='white')

当以(left,top,right,bottom)参数添加border宽度时,各个border的宽度可以是不一样的。
2. img_with_border = ImageOps.expand(img,border=4,fill='white')

当以 border的方式添加border宽度时,各个border的宽度是一致的。

下图依次是 原图,border = 20,以及(left,top,right,bottom) = (40,20,70,100)(fill = 'white')


转载于:https://www.cnblogs.com/muzixi/p/6433170.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值