如何用python代码,更改照片尺寸,以及更换照片底色

前言

python浅浅替代ps?如何用代码来p证件照并且更换底色?

唉,有个小姐姐给我扔了张照片,叫我帮忙给她搞成证件照的尺寸还得换底色,她说自己忙的很

可惜电脑上没有ps只有pycharm,没得办法只能来试试看代码能不能帮帮她了

毕竟文章发出来了,肯定是已经帮她改好了,所以先给你们来看看实现效果吧

实现效果

1、尺寸长宽调整为:295x413

2、背景色调为蓝底 和 红底各一张

3、还要一张透明背景的证件照。

请添加图片描述

请添加图片描述

以上的动图 就是最终的效果了,小姐姐还是觉得我很不错的,接下来就给你们分享分享代码吧 👉 【源码可直接点击文末名片获取】

准备工作

我们需要用到两个python模块:pillow和removebg

pillow模块:用于调整照片的像素大小。

removebg模块:用于抠图,调整背景。

安装python模块

pip install pillow
pip install removebg

请添加图片描述

完整代码

【点击文末名片获取】

证件照尺寸调整

先来调整尺寸吧,调好了,再来调整背景颜色。

学妹说,她考试要求的照片尺寸:295x413

from PIL import Image

old_img = 'C:/Users/Administrator/Desktop/img/学妹.png'
new_img = 'C:/Users/Administrator/Desktop/img/学妹-new.png'
img = Image.open(old_img)
# 读取照片尺寸
690643772 ### 源码领取
(x, y) = img.size
# 重新设置照片尺寸
x_s = 295  # 宽
y_s = 413  # 高
out = img.resize((x_s, y_s), Image.ANTIALIAS)  # resize image with high-quality
out.save(new_img)

print('原始照片尺寸(宽x高): ', x, "x", y)
print('调整后照片尺寸:(宽x高) ', x_s, "x", y_s)

效果样式

请添加图片描述

证件照背景调整

1、通过removebg模块的方法,我们可以把人像抠图出来。

2、我们通过颜色背景来定义三个背景颜色

BACKGROUND_COLOR = {
    'RED': (255, 0, 0, 255),
    'BLUE': (67, 142, 219, 255),
    'WHITE': (255, 255, 255, 255)
}

3、将抠出来的无背景的图片 粘贴到我们自己画的背景板上

# 老照片路径、新照片路径、无背景照片路径、颜色
def get_img_bg(old_img_path, new_img_path, no_bg_img_path, color):
    # 去掉背景图,提取照片
    rmbg.remove_background_from_img_file(old_img_path)
    foreground = Image.open(no_bg_img_path)
    background = Image.new('RGBA', foreground.size, BACKGROUND_COLOR[color])  # 背景图,大小同前景图
    background.paste(foreground, mask=foreground)
    background.save(new_img_path)


if __name__ == '__main__':
    get_img_bg('C:/Users/Administrator/Desktop/img/学妹.png', 'C:/Users/Administrator/Desktop/img/学妹_red.png',
               'C:/Users/Administrator/Desktop/img/学妹.png_no_bg.png', 'RED')
    get_img_bg('C:/Users/Administrator/Desktop/img/学妹.png', 'C:/Users/Administrator/Desktop/img/学妹_blue.png',
               'C:/Users/Administrator/Desktop/img/学妹.png_no_bg.png', 'BLUE')

各种背景颜色图片

原图、透明背景、蓝色背景、红色背景图片全部生成。

请添加图片描述

最后

文章分享到这里就结束啦,有什么不懂的可以评论区留言哦 😎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/605.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Printk打印内核日志

一、背景 Linux 内核中提供了内核日志打印的工具printk。它的使用方式C语言中的printf是类似的。接下来我们介绍一下printk的使用方式。本文以打印Binder中的日志为例,进行演示。 printk的方法声明和日志级别binder驱动中增加 打印代码android系统中查看日志信息 …

第四季新星计划即将开启,博客之星取消拉票你怎么看?

catalogue🌟 写在前面🌟 线下创机遇🌟 新星计划🌟 做导师可以得到什么🌟 新星计划跟原力计划有何不同?🌟 博客之星新玩法你怎么看?🌟 写在前面 哈喽,大家好&…

为什么程序员喜欢这些键盘?

文章目录程序员的爱介绍个人体验程序员的爱 程序员是长时间使用计算机的群体,他们需要一款高品质的键盘来保证舒适的打字体验和提高工作效率。在键盘市场上,有很多不同类型的键盘,但是对于程序员来说,机械键盘是他们最钟爱的选择…

新型 PCIe 数字化仪结合了超快的速度、高分辨率和市场领先的流媒体

Spectrum Instrumentation 新增的两款 PCIe 数字化仪卡扩展了该公司的旗舰 M5i 系列,以提供最佳的 GHz 信号采集和分析功能。单通道和双通道卡提供超快的 10 GS/s 采样速度、12 位垂直分辨率和市场领先的 12.8 GB/s 数据流(通过 PCIe 总线)的…

思科模拟器 | 交换机与路由器的配置汇总【收藏备用】

文章目录一、vlan配置【实现同一vlan的主机通信】1、基本配置和接线2、vlan配置与端口连接3、测试连接二、truck配置【实现连接在不同交换机上的同一vlan的主机通信】1、基本配置和接线2、vlan配置与端口连接3、打truck做连接3、测试连接三、静态路由配置1、自定义IP地址2、基本…

断崖式难度的春招,可以get这些点

前言 大家好,我是bigsai,好久不见,甚是想念。 开学就等评审结果,还好擦边过了,上周答辩完整理材料,还好都过了(终于可以顺利毕业了),然后后面就是一直安享学生时代的晚年。 最近金三银四黄金…

【Java】期末复习知识点总结(4)

适合Java期末的复习~ (Java期末复习知识点总结分为4篇,这里是最后一篇啦)第一篇~https://blog.csdn.net/qq_53869058/article/details/129417537?spm1001.2014.3001.5501第二篇~https://blog.csdn.net/qq_53869058/article/details/1294751…

数据分析自学路线

数据分析作为近几年火起来的IT技术岗位,在大数据时代的浪潮下迅速发酵膨胀,席卷了众多互联网企业,漫延到了金融、教育、医疗、消费等传统行业,在新经济领域也有重要作用,比如人工智能、新能源、电子芯片、企业数字化服…

力扣-排名靠前的旅行者

大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:1407. 排名靠前的旅行者二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其…

20年程序员生涯,读了200多本技术书,挑了几本精华好书分享给大家

不知不觉已经又走过了20个年头了,今年已经44了,虽然我已经退休在家,但一直都保持着读书的习惯,我每年平均要读10本技术书籍,保持不让自己的技术落伍。 这些年读的技术书不下200本,很多好书我都会保存在家&a…

【蓝桥杯-筑基篇】排序算法

🍓系列专栏:蓝桥杯 🍉个人主页:个人主页 目录 前言: 一、冒泡排序 二、选择排序 三、插入排序 四、图书推荐 前言: 算法工具推荐: 还在为数据结构发愁吗?这款可视化工具,帮助你更好的了解…

列表排序-第14届蓝桥杯STEMA测评Scratch真题精选

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第108讲。 蓝桥杯选拔赛现已更名为STEMA,即STEM 能力测试,是蓝桥杯大赛组委会与美国普林斯顿多…

Request和Response的概述

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,输出优质文章⭐作者主页:︶ㄣ释然⭐如果觉得文章写的不错,欢迎点个关注😉有写的不好的地方也欢迎指正,一同进步😁Request和Respo…

UE笔记-AI Move To无法正常结束/打断 1

启用Stop on Overlap 会导致AI与目标距离受到碰撞影响,实际效果需按要求处理 当Lock AILogic为True时,Move To的Task无法被黑板装饰器打断 当Use Continuos Goal Tracking为True时,Move To的节点不会根据Acceptance Radius设定而结束&#x…

第五周作业、第一次作业(1.5个小时)、练习一

一、创建servlet的过程没有太多好说的,唯一需要注意的就是:旧版本的servlet确实需要手动配置web.xml文件,但是servlet2.5以后,servlet的配置直接在Java代码中进行注解配置。我用的版本就不再需要手动去配置web.xml文件了,所以我只…

Spring Cloud Alibaba 微服务2,注册中心演变 + Nacos注册中心与配置中心

目录专栏导读一、什么是Nacos?二、注册中心演变及其设计思想1、RestTemplate调用远程服务2、通过Nginx维护服务列表(upStream)3、通过Nacos实现注册中心4、心跳版Nacos三、Nacos Discovery四、Nacos核心功能1、服务注册2、服务心跳3、服务同步…

Python的30个编程技巧

1. 原地交换两个数字 Python 提供了一个直观的在一行代码中赋值与交换(变量值)的方法,请参见下面的示例: x,y 10,20 print(x,y) x,y y,x print(x,y) #1 (10, 20) #2 (20, 10) 赋值的右侧形成了一个新的元组,左侧立即解…

Kubernetes详细安装

By:雪月三十 参考: https://blog.csdn.net/qq_43580215/article/details/125153959 https://juejin.cn/post/6844903943051411469 https://mp.weixin.qq.com/s?__bizMzI0MDQ4MTM5NQ&mid2247502359&idx1&sn8c16100c9731359b9864403183f44233…

python 正则使用详解

python 正则使用详解什么是正则在 python 中使用正则一些正则的定义python 正则的方法match 从字符串开头匹配正则返回的结果分析(重要)fullmatch 严格匹配整个字符串search 任意位置开始匹配sub 替换匹配内容subn 以元组方式返回替换结果split 正则切割…

一 Go环境搭建

1. 下载地址 https://golang.google.cn/dl/ 傻瓜式安装,自动会配置path的变量,安装完成后可以使用go version 查看当前安装的版本 本文使用目前最新的1.20.2版本 2. 配置go环境 cmd控制栏打开输入以下命令(如果cmd有问题可以尝试powershe…