原创不易请勿抄袭

一个凌晨更新公众号的狗子

没错

是我本人

又到了一年一度办公园年卡的日子了,每年需要一张1寸照片,我的库存今年告罄

如果拿着一寸照片去冲印,商家那个冲印的价格可比冲印普通照片不知道贵了多少(目测10倍以上)

其实是一样的相纸啊

于是乎,为了省这点钱就自己排版好了,毕竟穷不是

如果选用工具的话,不会ps的推荐“光影魔术手v3.1.2”(最新版感觉不太好用)

but,作为一个技术宅,我当然是选择自己来实现啦!

话不多说,说干就干

思 路

一张证件照,尺寸比例可以不完全按照标准

按比例裁剪(1寸、2寸的比例不同)

缩放到标准尺寸

排版到5寸或者6寸照片上

照片尺寸

宽*高(单位:像素)

1寸照片:295*413

2寸照片:413*626

5寸照片(横版):1500*1050

6寸照片(横版):1800*1200

编程环境

python3 + pillow库

具体操作

1

裁剪

以1寸照片为例,其高:宽 = 1.4,为了使原始照片不失真,应该按照这个1.4的比例进行裁剪

若大于1.4说明高度多了,需要进行上下裁剪;若小于1.4说明宽度多了,需要进行左右裁剪。这里的裁剪均是对称平均裁剪

Image.crop((left, up, right, below))

参数:

需要四个参数,分别是目标照片的四个边线距离左边和上边的距离

值得注意的是:参数是一个元组,因此看起来有两对括号!

2

缩放

将已经调整好比例的照片进行标准缩放,标准如下(单位:像素):

1寸照片:295*413

2寸照片:413*626

Image.resize(width, height)

参数:

width:宽

heght:高

3 排版

先想好冲印5寸照片还是6寸照片,以及是需要1寸、2寸还是混合排版?

这两个因素都会影响到排版问题,主要是横or竖的问题

以5寸照片上排版1寸照片为例(5寸横版,1寸竖版,2*4排列),是这样滴:

在排列之前,我细心的用画笔画出了裁剪线,这样手残的人再也不用哆哆嗦嗦剪歪了

bk = Image.new("RGB", [WIDTH_5IN,HEIGHT_5IN], (255,255,255))# 创建一个5寸大小的,白色背景的画板

draw = ImageDraw.Draw(bk)# 创建画笔draw.line([(0,HEIGHT_5IN/2),(WIDTH_5IN,HEIGHT_5IN/2)],fill=128) # 横线,fill是填充颜色

新建画板就不多讲了,注意一下参数的位置,先宽后高,颜色参数其实有多种写法

这里主要讲一下怎么在画板上画线,其实是需要起点坐标和终点坐标,坐标原点是画板左上角,横轴向右x,纵轴向下y

还是画个图更直观

注意坐标的写法 [(起点x,起点y),(终点x,终点y)],坐标点必须为int类型

我这个画完是这样嘞(红色线部分),像不像冰格:

然后就是把照片贴上去,注意要放在每个“格子”的中心呦

Image.paste(photo, (photo左上角坐标))

因此,我们需要计算单个1寸照片在整个画板里左上角坐标,

还是画个图说明下:

先求每个小格子里中心点focus_point的坐标,然后根据1寸照片的大小求左上角坐标start_point。然后根据每个start_point循环把照片贴上去就好啦!

我生成的是这样嘞,看起来很完美啊!

同理,5寸照片排版2寸的。这里注意新建画板时候的尺寸,因为相当于是竖版照片

5寸照片混合排列1寸、2寸的:

注意一下

2寸照片旋转了90度,用到的函数中,参数必须写上expand=True

Image.rotate(90,expand=True))

如果没写这个参数默认是False,这样旋转后的照片是按照原来的大小,会有裁剪或者黑边,例如:

6寸照片排版1寸:

6寸照片排版2寸按照5寸照片的排版模式会有高度上的溢出

解决方法:新建画布时候按照6寸比例3:2进行适当的放大,因为冲印的时候也没要求就是标准大小嘛

比如,我将大小改为1950*1300

同理,6寸照片混合排列1寸、2寸的也是有溢出。修改完尺寸,混合排版的样子就多了去了,比如这样:

或者这样:

源代码

需要源代码的童鞋,请访问我的博客园地址获取

https://www.cnblogs.com/aby321/p/11805789.html

特别鸣谢

由衷感谢 薛老板 提供本人证件照

为表达本人的感激之情

在此为他 征友

有意者请在公众号内回复

python相册排版_Python3一键排版证件照(1寸照、2寸照) | 原创相关推荐

  1. python已知横版求竖版_python3一键排版证件照(一寸照、二寸照),附源代码

    又到了一年一度办公园年卡的日子了,每年需要一张一寸照片,库存今年告罄 如果拿着一寸照片去冲印,商家那个冲印的价格可比冲印普通照片不知道贵了多少呗(目测10倍以上) 其实是一样的相纸啊 于是乎,为了省这 ...

  2. html编写四宫格展示图片,七彩色图片排版工具一键制作四宫格图片教程

    七彩色图片排版工具是一款好用的图片排版工具.我们可以使用七彩色图片排版工具将电脑中的图片进行一键一键排版: 进入下载七彩色图片排版工具 2.1 官方版 大小:3.36 MB 日期:2019/2/25 ...

  3. python:6寸照片纸混合排版1寸、2寸、小2寸证件照

    本文分享一段利用Python编写的证件照自动排版代码,能够根据用户选择自动调整照片的大小和比例,并自动排版至6寸页面,混合3种类型常用证件照(上面6张1寸,左下2张2寸,右下2张小2寸) 代码中所用到 ...

  4. TinyMCE 富文本编辑器 ━━ 一键排版功能所需正则表达式整理及学习

    如果是公文发布,客户往往喜欢直接把word内容复制粘贴,这也导致大量的出错.最近客户的对格式的需求比较强烈,正好借机弄一弄.之前已经放了tinymce的插件及弹窗开发相关内容,今天进入一点关键内容~~ ...

  5. 动易html编辑器,文章内容一键排版功能——动易5.1版新特性

    内容管理一直是网站管理的核心功能,随着技术的不断进步,越来越多的好用功能在为我们管理内容提供便捷的服务.动易也在不断推动这些功能的普及,提供了诸如可视化内容编辑.图文排版.流媒体管理.WORD图片上传 ...

  6. 怎么一键排版_做了这么久的PPT!终于找到可以自动排版的插件了

    作为一只社畜,做PPT那是家常便饭,摸了摸日渐稀疏的头顶,不仅感叹:要是我的PPT能自己排版就好了!每次都要花很多的时间去排版,排得不好看还会被老板打回来重新改,别提多憋屈了!不过!终于!熬到头了!! ...

  7. fastnest怎么一键排版_什么公众号排版编辑器可以换字体?公众号字体在哪里选择修改?...

    公众号运营的日常简单概括就是找选题.写文章.排版.推文看数据,在这些日常工作中,必备的既能就是写作排版.一篇优质的公众号文章,除了内容优质之外,排版也有着很大的影响. 今天我们来聊聊字体修改,网络上各 ...

  8. fastnest怎么一键排版_我的妈呀!一键排版也太好用了吧!3秒钟搞定排版!

    原标题:我的妈呀!一键排版也太好用了吧!3秒钟搞定排版! 胖友们好,我是三儿 之前就老是有胖友问我 一键排版可不可以自己设置模板 你瞧这不就是来了 一键排版更新了! 先来看看更新前后的页面吧 更新前v ...

  9. Python一键更换证件照背景色

    Python一键更换证件照背景色 PS: 也是从网上各个帖子中学习的Python,因此代码的格式以及内容有粘贴网上其他大神的代码,如有侵权请告知删除 示例界面 import cv2 import nu ...

最新文章

  1. PythonR爬取分析赶集网北京二手房数据(附详细代码)
  2. Android图像开源视图:SmartImageView
  3. Memcached初探
  4. wuhan2020:武汉新型冠状病毒防疫开源信息收集平台
  5. 微信小程序API~GET
  6. Java LocalDate类| minusWeeks()方法与示例
  7. 织梦黑色互联网建站设计模板
  8. Android中监听ScrollView滑动停止和滑动到底部
  9. 《抉择与命运》读后感
  10. Go-闭包和匿名函数讲解
  11. WebStorm汉化教程
  12. ToolsOh第8批收录
  13. Java菜鸟的初次实习经历
  14. java项目 ppt,Java项目报告ppt
  15. Buckhorn跳羚声卡驱动安装设置方法
  16. 悦读 | 人生十论. 钱穆
  17. [从头读历史] 第263节 左传 [BC537至BC479]
  18. Atomic类如何保证原子性
  19. PostgreSQL备机checkpoint
  20. linux命令part,技术|十个鲜为人知的 Linux 命令-Part 3

热门文章

  1. 视频中的3D人体姿态估计(3D human pose estimation in vide)--------Facebook research: VideoPose3D
  2. Apache APISIX 社区成员助力 openEuler 发布第一个社区创新版
  3. 微信小程序对餐饮行业有哪些影响
  4. 百家号自媒体如何提升文章质量,百家号怎么写好文章,百家号写文章技巧
  5. python 利用火狐浏览器爬取内容
  6. 迷宫中离入口最近的出口问题
  7. Android仿QQ登陆
  8. 常见字读音(粤语)---(5)
  9. 概念模型、数据模型、关系数据模型
  10. Python打开记事本