ImageOps.expand改变图像纵横比

该接口的功能主要是通过在原始图像周围填充像素的方式来改变图像的尺寸

接口使用介绍

ImageOps.expand(img,border=300,fill='black')
border :四个border的宽度一致时,border是宽度
ImageOps.expand(img,(4,4,8,8),fill='white')

border说明:

(4,4,8,8) ---> left, top, right and bottom borders.
4--left:表示左上角像素点距最终图左边的像素宽度 ---左边border的宽度
4--top:表示左上角像素点距最终图上边的像素宽度 --- 上边border的宽度
8--right:表示右下角像素点距最终图右边的像素宽度 --- 右边border的宽度
8--bottom:表示右下角像素点距最终图下边的像素宽度 --- 下面border的宽度

fill 说明:

可选包括:
'white' , 'black' , 'red' , 'green' , 'blue' , val , (val1, val2, val3)
也就是说可以是一些常见颜色的单词名称,也可以是单个数值(即灰度值), 三通道的值(分别对应R, G, B)

代码示例

from PIL import Image,ImageOps

img = Image.open('demo.jpg')
#print( img.size)     # 假设w = 100, h = 200

img_with_border = ImageOps.expand(img,(4,5,6,7),fill=0)
# img_with_border = ImageOps.expand(img,border=4,fill='white')
#print( img_with_border.size)      
# 此时 w_new = w + left + right = 100+4+6=110, h_new = h + top + bottom = 200 + 5 + 7 = 212

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容