zoukankan      html  css  js  c++  java
  • 利用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')


  • 相关阅读:
    中风后遗症
    慢性湿疹半年
    女子脚背痒肿案
    肾盂肾炎病案
    鼻衄二则
    糖尿病病案
    慢性肠炎2例
    子宫肌瘤病案2例
    眩晕病案
    前列腺炎病案3例
  • 原文地址:https://www.cnblogs.com/muzixi/p/6433170.html
Copyright © 2011-2022 走看看