分享一个骚操作,用Python来P图(py做图)
off999 2024-10-09 14:00 27 浏览 0 评论
作者 | Ahab,专注于 Python 数据挖掘、数据分析与机器学习
现在,PS 的应用越来越广泛,大家的 PS 技术也越来越炉火纯青,任何一张图,只有你想不到的,没有我 P 不了的,轻松就可以变成搞笑图片(比如下图),除了用一些现场的 PS 软件或工具,能不能用 Python 搞点事情呢?
作为一个爱折腾的程序猿,能用代码的解决的事情绝对不会用其他的方式,PS 技能也必须 Get。今天就教给大家Python 的 P 图大法。
具体介绍
今天的教程中,主要用到的就是 PIL 库。
PIL(Python Image Library)是 python 的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是 python 官方图像处理库了,今天只是简单的学习了几个方法就已经感受到PIL的强大。
PIL 可以做很多和图像处理相关的事情:
图像归档(Image Archives)。PIL 非常适合于图像归档以及图像的批处理任务。你可以使用PIL创建缩略图,转换图像格式,打印图像等等。
图像展示(Image Display)。PIL较新的版本支持包括 TkPhotoImage,BitmapImage 还有 Windows DIB 等接口。PIL 支持众多的 GUI 框架接口,可以用于图像展示。
图像处理(Image Processing)。PIL 包括了基础的图像处理函数,包括对点的处理,使用众多的卷积核(convolution kernels)做过滤(filter),还有颜色空间的转换。PIL 库同样支持图像的大小转换,图像旋转,以及任意的仿射变换。PIL 还有一些直方图的方法,允许你展示图像的一些统计特性。这个可以用来实现图像的自动对比度增强,还有全局的统计分析等。
今天先给大家介绍刚学到的三个比较好玩的操作(并没有详细的介绍 PIL 那些最常用的特性与用法)主要参考自:
http://www.effbot.org/imagingbook/
代码实现
先上一个效果图。
实现这个效果使用的是 PIL 中的 Blend 类
Image.blend(image1,image2,alpha) ?image
使用给定的两张图像及透明度变量 alpha,插值出一张新的图像。这两张图像必须有一样的尺寸和模式。合成公式为:
out=image1(1.0- alpha)+image2alpha
若变量 alpha 为 0.0,返回第一张图像的拷贝。若变量 alpha 为 1.0,将返回第二张图像的拷贝。对变量 alpha 的值无限制。
1from PIL import Image
2im1 = Image.open("124.jpg")
3im2 = Image.open("123.jpg")
4print(im1.mode,im1.size)
5print(im2.mode,im2.size)
6im = Image.blend(im1, im2, 0.3)
7im.save('k3.jpg')
当然除了上面的方法还可以使用 Composite类
Image.composite(image1,image2, mask) ? image
复合类使用给定的两张图像及mask图像作为透明度,插值出一张新的图像。变量 mask 图像的模式可以为 “1”,“L” 或者 “RGBA”。所有图像必须有相同的尺寸。
1from PIL import Image
2im1 = Image.open("124.jpg")
3im2 = Image.open("123.jpg")
4r,g,b = im1.split
5print(b.mode)
6print(im1.mode,im1.size)
7print(im2.mode,im2.size)
8im = Image.composite(im1,im2,b)
9im.save('k1.jpg')
自己只是做了一个简单的测试大家可以通过这种方法做出更好看的图片,PIL不仅可以使两张图片进行重合,还可以给图片添加水印。
1from PIL import Image, ImageDraw,ImageFont
2#将原来的图片转换为RGBA模式
3im = Image.open(r"timg2.png").convert('RGBA')
4#新建一个图片,尺寸与上面的尺寸一样,透明度为0即完全透明
5txt=Image.new('RGBA', im.size, (0,0,0,0))
6#设置要写文字的字体
7fnt=ImageFont.truetype("D:\PycharmProjects\music\SIMYOU.TTF", 30)
8#打汉字
9d=ImageDraw.Draw(txt)
10#写要打的位置,内容,用的字体,文字透明度
11d.text((txt.size[0]-205,txt.size[1]-50),"@Ahab杂货铺",font=fnt, fill=(255,0,0,300))
12#两个图片复合
13out=Image.alpha_composite(im, txt)
14#保存加水印后的图片
15out.save(r"KB.png")
下面带来最后一组有趣的操作:Filter类
im.filter(filter) ? image
返回一个使用给定滤波器处理过的图像的拷贝。在该模块中,预先定义了很多增强滤波器,可以通过 filter 函数使用,预定义滤波器包括:BLUR,CONTOUR,DETAIL,EDGE_ENHANCE,EDGE_ENHANCE_MORE,EMBOSS,FIND_EDGES,SMOOTH。其中BLUR就是均值滤波,CONTOUR找轮廓,FIND_EDGES边缘检测,使用该模块时,需先导入。
1from PIL import Image
2from PIL import ImageFilter ## 调取ImageFilter
3img = Image.open("123.jpg")
4blu = imgF.filter(ImageFilter.BLUR) ##均值滤波
5con = imgF.filter(ImageFilter.CONTOUR) ##找轮廓
6edge = imgF.filter(ImageFilter.FIND_EDGES) ##边缘检测
7blu.save('k.jpg')
8con.save('k2.jpg')
9edge.save('k3.jpg')
下面的几张图中,第一张是原图,剩下的是根据我们设置的呈现的效果图。
(*本文为作者授权转载,转载请联系原作者)
你有什么Python方面的奇淫技巧?
欢迎留言和我们分享
如果觉得文章对你有所帮助,欢迎点赞并且推荐给你的好友。
印度小伙写了套深度学习教程,Github上星标已经5000+
上百个数据文件合并,只能手动复制粘贴?教你一招十秒搞定!
一个提升图像识别准确率的精妙技巧
一文读懂:从 Python 打包到 CLI 工具
如何使用 Python 进行时间序列预测?
美亚Kindle排名第一的Python 3入门书,火遍了整个编程圈
十分钟搭建私有 Jupyter Notebook 服务器
使用 Python 制作属于自己的 PDF 电子书
12步轻松搞定Python装饰器
200 行代码实现 2048 游戏
相关推荐
- win10企业版激活命令(win10企业版cmd激活命令)
-
关于这个问题,Windows10企业版可以通过以下方法进行激活:1.使用企业版密钥激活:如果你已经有了Windows10企业版的密钥,可以在“设置”中的“更新和安全”中选择“激活”来输入密钥进行...
-
- 如何恢复备份数据(备份的数据怎么恢复到手机上)
-
把备份删了的话,一键还原目前是用不了的。现在唯一的办法,是从网上下载一个数据恢复类的软件,只要的备份还没有被别的软件覆盖,是应该可以数据恢复回来的。不能保证百分之百得成功,但是恢复几率还很大的,你可以试试,操作方法首先点击手机“设置”。然后...
-
2025-11-11 06:51 off999
- 笔记本无线网卡怎么使用(笔记本无线网卡怎么使用教程)
-
笔记本无线网卡设置;第一:你要确定你的本本是否有无线上网功能,如果没有就得加个无线网卡;第二:有的话就打开无线网络接受开关;第三:程序设置主要就是在网上邻居的属性里,打开无线上网打开“网上邻居”的“属...
- 鲁大师电脑版官方下载(鲁大师电脑版官方下载安装)
-
因为鲁大师是跑分软件,它会拖慢电脑的运行速度,还会占据大量的内存,如果你的电脑配置不是太好的话,装了鲁大师只会雪上加霜,非但得不到任何优化作用,还会拖慢电脑的启动速度,造成不必要的损耗。玩游戏都会卡顿...
- win10怎么开机进入安全模式(win10开机怎么进安全模式怎么进)
-
进入Windows10安全模式有以下几种方法:方法一:使用开机高级选项1.在按下电源开机键后,持续按住F8键,直到你进入启动选项页面;2.从菜单中选择“安全模式”。方法二:使用系统配置1...
- 华硕电脑怎么重新安装系统(华硕电脑怎么重新安装系统教程)
-
第一步:备份重要数据重装系统前,务必先备份重要的个人数据。你可以将数据保存在外部存储设备上,或者使用云存储服务,确保数据安全可靠。第二步:下载系统镜像为了重装系统,你需要下载华硕笔记本电脑适用的操作系...
- 电脑显示此windows副本不是正版
-
1、第一步在电脑搜索框搜索命令提示符,鼠标右键以管理员的身份运行,2、第二步以管理员身份进去命令提示符之后输入"SLMGR-REARM",3、第三步按回车键可以看到命令已经成功重启一下...
- 电脑怎么复制粘贴按键(电脑复制粘贴按键是哪个)
-
电脑键盘上的粘贴键是:Ctrl+V按键。具体操作:1、以在excel表格中进行复制粘贴操作为例,首先选中需要复制粘贴操作的单元格。2、然后按下键盘上的“Ctrl+C”按键执行复制操作。3、然后将鼠标单...
- 笔记本黑屏但还在运行(笔记本电脑黑屏但运行)
-
具体修复方法:1、直接按下电脑机箱上的启动键让电脑重启,等待重新正常进入系统中。然后打开电脑系统盘,右键点击c盘进入属性设置面板中;2、在硬盘的属性设置中切换到工具标签;3、在查错选项中点击检查错误按...
- 从u盘启动怎么弄bios(u盘怎么在bios启动)
-
1、开启电脑,在电脑出现开机画面的时候连续按下“Esc”键进入BIOS设置;(部分电脑可能会是Delete、F2或F6)2、进入BIOSFEATURESSETUP中,将Boot(启动顺序)设定为U...
- 两台电脑怎么共享文件夹(如何把电脑c盘的存储移到d盘)
-
一、QQ共享简单易行既然使用QQ直接传递文件行不通,那么不妨试试使用QQ的文件共享功能。1.共享文件点击QQ面板的“菜单”→“工具”→“共享文件”命令。在打开的共享文件窗口中,单击“新建共享”按钮,...
- 怎么查看电脑产品密钥(怎么查看自己电脑产品密钥)
-
准备工具:电脑1.打开电脑,在电脑中找到我的电脑选项,双击该选项打开我的电脑进入我的电脑主页面。2.在我的电脑主页面中找到磁盘下方的空白位置,鼠标右键单击该位置调出功能选项框。3.在功能选项框中找到下...
- 不知道密码怎么连接wifi网络
-
不知道WiFi密码怎么连接,如果你不知道WiFi密码的话,那我没有办法连接网络,你必须去找WiFi密码是主人,然后询问密码,只有你得到了最准确的密码以后,你才可以开启你的WiFi网络设置,然后输入正确...
- u盘写了保护怎么把保护删掉了
-
U盘写保护可以通过以下几种方法去除:1.取消U盘的写保护开关。有些U盘上面自带写保护的开关,如果被拨到写保护状态时,就会对U盘进行写保护,这种情况解决的办法最简单,直接将开关拨回原位即可。2.修复...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
慕ke 前端工程师2024「完整」
-
失业程序员复习python笔记——条件与循环
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
