不到20行实现Python代码即可制作精美证件照
作者:野客 发布时间:2021-08-29 09:27:43
标签:Python,证件照
无论是我们上学时还之后的工作中,基本都需要用到电子证件照片,这类照片基本都对照片尺寸、背景色有要求,本文我们来看一下如何只用不到 20 行 Python 代码完成证件照片的制作。
简介
* 照我们主要有两个工作:修改照片背景和修改照片尺寸,修改背景我们需要用到第三方库 removebg
,修改照片尺寸需要用到 PIL
库,这两个库的安装使用 pip install removebg
和 pip install Pillow
即可。
使用 removebg
时,我们还需要一个 API 密钥,获取方式为:首先,我们打开链接地址 https://accounts.kaleido.ai/users/sign_up
注册一个账户,打开后如下图所示:
我们填写邮箱和密码再勾选同意协议后提交,之后该网站会给我们刚刚填写的邮箱发送一条验证信息,我们进到自己的邮箱点击验证链接完成验证之后即完成了账号的注册工作。
账号注册好之后,我们接着打开 https://www.remove.bg/zh/profile#api-key
地址登录自己的账号,即可进入到下图位置:
我们点击上图中的显示按钮,就可以拿到秘钥了。
代码实现
代码实现也比较简单,还是我们之前说的思路:使用 removebg
库修改照片背景色,使用 PIL
库修改照片尺寸,具体实现如下所示:
from PIL import Image
from removebg import RemoveBg
# 修改照片背景色
def change_bgcolor(file_in, file_out, api_key, color):
rmbg = RemoveBg(api_key, 'error.log')
rmbg.remove_background_from_img_file(file_in)
no_bg_image = Image.open(file_in)
x, y = no_bg_image.size
new_image = Image.new('RGBA', no_bg_image.size, color=color)
new_image.paste(no_bg_image, (0, 0, x, y), no_bg_image)
new_image.save(file_out)
# 修改照片尺寸
def change_size(file_in, file_out, width, height):
image = Image.open(file_in)
resized_image = image.resize((width, height), Image.ANTIALIAS)
resized_image.save(file_out)
我们可以看出整个实现过程只用了不到 20 行代码。
效果展示
最后我们来看一下实现效果:
来源:https://segmentfault.com/a/1190000022450666
0
投稿
猜你喜欢
- 1、准备工作pip install qcloudsms_py1.注册腾讯云账号2.在产品列表内找到短信,在短信内添加应用3.获取对应的SDK
- 为什么是三谈为什么是三谈呢?一是因为这真的是一个被说烂的话题,二是因为太师傅在n年前就写过这篇再谈iframe自适应高度。之所以再提该问题,
- 我要一大群的类都具有一 * 点,我怎么给他们加上呢?模板模板吗,我从这个模板创建一群类不就OK了?那就需要元类了。霍霍》 定义一个元类(就所一
- 设置密码保护SqlServer数据库备份文件! 备份SqlServer数据库 Backup Database [数据库] To disk=&
- 本文实例总结了Python实现判断一个字符串是否包含子串的方法。分享给大家供大家参考,具体如下:1.使用成员操作符 in>>&g
- 动机: 排序功能让我们页面上的数据显的更人性化,是我们在网站上见过的很普遍的一个功能效果了。以往的自动排序都是用大量的脚本代码来完成的,对一
- 这篇文章主要介绍了如何基于Python制作有道翻译小工具,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 前言数据分析就是将数据以各种图表的形式展现给领导,供领导做决策用,因此熟练掌握饼图、柱状图、线图等图表制作是一个数据分析师必备的技能。Pyt
- 本文实例为大家分享了Python Pygame实现俄罗斯方块的具体代码,供大家参考,具体内容如下源码:# coding : utf-8#:
- 一、python线程的模块1.thread和threading模块thread模块提供了基本的线程和锁的支持threading提供了更高级别
- 写在前面因为暂时还没有想好做什么具体的某个项目来提升对python的理解,所以就自己想着做一下小玩意来加强一下自己对一些库和方法的理解分析1
- 概述PHP有着众多的内置函数,其中大多数函数都被开发者广发使用。但也有一些同样有用却被遗忘在角落,本文将介绍7个鲜为人知功能却非常酷的函数。
- 平时自己写了很多代码,但从没好好计算总共写了多少行,面试时被问起来,就傻了。。。闲来无事,写个python程序来统计下import os##
- 本文实例分析了Python减少循环层次和缩进的技巧。分享给大家供大家参考,具体如下:我们知道Python中冒号和缩进代表大括号,这样写已经可
- mergemerge 函数通过一个或多个键将数据集的行连接起来。场景:针对同一个主键存在的两张包含不同特征的表,通过主键的链接,将两张表进行
- 前言在AI领域,来快速实现一个idea:前后端开发+部署+展现,如果走传统的前后端分离开发+服务器docker部署等方式,会很重且入门成本很
- 本文实例讲述了Python使用matplotlib实现交换式图形显示功能。分享给大家供大家参考,具体如下:一 代码from random i
- asp中我们可以利用ERR对象来判断sql语句执行是否成功:SQL="Insert INTO TABLE(F1,F2) value
- 今天在对一堆新数据进行数据清洗的时候,遇到了一个这样的问题:ValueError: cannot convert float NaN to
- 这两天在搞Theano,要把mat文件转成pickle格式载入Python。Matlab是把一维数组当做n*1的矩阵的,但Numpy里还是有