import os
import random
import shutil
import csv
from PIL import Image, ExifTagsdef add_white_edge(infilename, outfilename, aspect):inImg = Image.open(infilename)# print(inImg.size)"""对于手机、相机等设备拍摄的照片,由于手持方向的不同,拍出来的照片可能是旋转0°、90°、180°和270°。即使在电脑上利用软件将其转正,他们的exif信息中还是会保留方位信息。在用PIL读取这些图像时,读取的是原始数据,也就是说,即使电脑屏幕上显示是正常的照片,用PIL读进来后,也可能是旋转的图像,并且图片的size也可能与屏幕上的不一样。对于这种情况,可以利用PIL读取exif中的orientation信息,然后根据这个信息将图片转正后,再进行后续操作,具体如下。"""try:for orientation in ExifTags.TAGS.keys():if ExifTags.TAGS[orientation] == 'Orientation': breakexif = dict(inImg._getexif().items())if exif[orientation] == 3:inImg = inImg.rotate(180, expand=True)elif exif[orientation] == 6:inImg = inImg.rotate(270, expand=True)elif exif[orientation] == 8:inImg = inImg.rotate(90, expand=True)except:passwidth, height = inImg.size  # 获取原图像的水平方向尺寸和垂直方向尺寸。# print(inImg.size)if (height / width) == aspect:inImg.save(outfilename)elif height / width > aspect:out_width = math.ceil(height / aspect)out_height = heightbgImg = Image.new("RGB", (out_width, out_height), (255, 255, 255))bgImg.paste(inImg, (round((out_width - width) / 2), 0))bgImg.resize((out_width, out_height), Image.LANCZOS).save(outfilename)elif height / width < aspect:out_width = widthout_height = math.ceil(width * aspect)bgImg: Image.Image = Image.new("RGB", (out_width, out_height), (255, 255, 255))bgImg.paste(inImg, (0, round((out_height - height) / 2)))bgImg.resize((out_width, out_height), Image.LANCZOS).save(outfilename)

python给图片加上白边,使图片达到所需的纵宽比相关推荐

  1. java按照图片尺寸插入excel,使图片不失真

    公司要做导出excel功能,excel中要插入图表图片,研究了一下如何按照图片的尺寸插入excel,尽量使图片不失真 public static int savePic1(HSSFSheet shee ...

  2. java 图片加白压缩_java图片添加水印和压缩

    图片添加水印和压缩 [Java]代码 package net.leebao.core.util; import java.awt.AlphaComposite; import java.awt.Col ...

  3. html 图片加时间戳,怎么批量给图片加上时间戳 快速给图片添加相应的时间戳的方法...

    现在几乎人手一部手机,走到哪看见有趣的事物都会拍照留念,照片可以反映当时的情景,留下美好回忆,我们在翻看以前照片的时候可以充分感受时光的美好.不过当照片太多的时候,时间长了就会记不住照片上的是什么时候 ...

  4. html怎么设置图片倾斜度,CSS3-css如何使图片倾斜45度显示

    下面我整理下不同浏览器对倾斜图片的实现,因为是 css3 的实现方式,如要求严格还是建议使用图片来实现,具体代码: IE下的实现,里面的参数请调整以达到45度效果: style="filte ...

  5. matlab2018在图片上添加文字并保存且图片没有白边

    文章目录 图片添加文字并保存 去除白边 添加文字使用 text函数,难点在于保存,使用 getframe来捕获,然后使用 imwrite来保存,类似的教程网上很多,但是有的添加文字不是使用text函数 ...

  6. 关于滤镜的使用,使图片默认为全灰色

    在编写该代码时, [color=red]a:link img{ filter:gray;}[/color] 发现图片没有任何变化,则要考虑该浏览器是否兼容,可参考以下代码,在考虑所有浏览器兼容的情况下 ...

  7. css: 使用线性渐变使图片变暗

    组件的布局方式之一,是在背景图片上放置白色文字,如果图片太亮,为了增强背景和文字之间对比度,就应该使用深色覆盖(dark overlay 深色叠加)使背景图片变暗. 没有使图片变暗之前: backgr ...

  8. windet插入图片的大小_LaTeX的图片插入及排版

    LaTeX中一般只直接支持插入eps(Encapsulated PostScript)格式的图形文件, 因此在图片插入latex文档之前应先设法得到图片的eps格式的文件. UNIX下的各种应用软件都 ...

  9. ppt矩形里面的图片怎么放大缩小_PPT图片如何点击放大

    PPT图片如何点击放大 [提要]<[电脑]PPT中图片点击放大效果的实现>由小编收集整理的,谨供需要实现电脑的朋友参考.内容如下: 用PPT做产品展示时,我们需要让观众看清楚细节.但同时又 ...

最新文章

  1. 如何快速融入团队(二)
  2. vscode使用教程python-教你正确使用VSCode写Python
  3. 批量移动某目录下某类型的文件到指定的目录下
  4. CNN-1: LeNet-5 卷积神经网络模型
  5. impdp导入表结构和表数据_ORACLE数据库如何用datapump工具导出表结构然后导入到其它Schema下面...
  6. 搭建Hexo博客(一)-创建Hexo环境
  7. java clock计时_Java Clock类| offset()方法与示例
  8. 4.4.5 清除变量内容
  9. 【BZOJ3576】江南乐,博弈
  10. Android系统(117)---Activity启动过程
  11. 将给定的字符串划分为所有可能的IP地址 Restore IP Addresses
  12. 软件测试之如何进行易用性测试?
  13. UDS协议(史上最全)
  14. 在SPSS中将统计表格外观修改为三线表外观的步骤
  15. hdu 1005 矩阵快速幂
  16. 微信一年的支付限额满了20万,无法支付了怎么办?
  17. 雷哥爱财,取之有道:4个月取了4000块
  18. RenderTexture 橡皮檫 电筒效果
  19. 操作系统中文件系统-文件的分类
  20. 使用 Vuex + Vue.js 构建单页应用

热门文章

  1. 王者荣耀服务器多会维护完,王者荣耀刚维护完又出现新状况,铭文攻击力全变123456...
  2. 学习笔记(02):PPT2013 设计应该这样玩-PPT中复杂图形的绘制(案例篇)
  3. 如何在Java IDEA中安装阿里P3C以及使用说明
  4. js跳出for双循环
  5. typedef的作用和用法(给结构体,函数指针,数组取别名)
  6. 【D3D11游戏编程】学习笔记九:编译Effect的方法
  7. 《打造高绩效团队》课程笔记
  8. 基于Java+MySQL实现(Web)医院门诊信息管理系统【100010554】
  9. python考研参考书目_Python自学日记28——如何选择学习资料
  10. [kuangbin]专题九 连通图 题解+总结