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')


  • 相关阅读:
    s3c2440 nand flash 拷贝实验
    DE270数字系统设计(4)基于Nios的LCD显示
    DE270数字系统设计实验(3)移位寄存器
    s3c2440启动时的内存拷贝过程分析
    s3c2440基本io/ports led点亮
    (转)X11/Xlib.h:没有该文件或目录
    NAND Flash读写技术
    Http中ContentType的取值讲解
    Json对象和Json字符串的区别
    table() function
  • 原文地址:https://www.cnblogs.com/muzixi/p/6433170.html
Copyright © 2011-2022 走看看