作者 | 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 Image2im1 = 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 Image2im1 = 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 Image2from PIL import ImageFilter                         ## 调取ImageFilter3img = 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 游戏

pil对图像加透明 python_分享一个骚操作,用 Python 来 P 图相关推荐

  1. pil对图像加透明 python_使用Python图像处理库Pillow处理图像文件

    文/江红  本文来源<Python程序设计与算法基础教程(第2版)-微课版> 本案例通过使用Python图像处理库Pillow,帮助读者进一步了解Python的基本概念:模块.对象.方法和 ...

  2. pil对图像加透明 python_关于python:如何使用PIL将透明png图像与另一个图像合并...

    我有一个透明的png图像"foo.png" 我打开了另一张图片 im = Image.open("foo2.png"); 现在我需要的是将foo.png与foo ...

  3. python 公众号文章发布_分享一个牛逼的Python项目:公众号文章爬虫

    我订阅了近 100 个公众号,有时候想再找之前读过的文章,发现搜索起来特别困难,如果忘了收藏,估计得找半小时,更让人无语的是,文章已经发布者删除,或者文章因违规被删除.那么有没有这样的爬虫,可以将公众 ...

  4. python爬取公众号阅读量_分享一个牛逼的Python项目:公众号文章爬虫

    我订阅了近 100 个公众号,有时候想再找之前读过的文章,发现搜索起来特别困难,如果忘了收藏,估计得找半小时,更让人无语的是,文章已经发布者删除,或者文章因违规被删除.那么有没有这样的爬虫,可以将公众 ...

  5. 分享一个404页面(猴子动态SVG图)

    404 SVG 动画 分享一个比较好看的404页面! 原地址:https://codepen.io/thejohnyagiz/pen/npDyq 防止原页面失效,代码 粘贴在下面 <!DOCTY ...

  6. python 均值滤波_Python的一个骚操作

    PS作为世界四大发明之一可以说被广大网友用到了极致,只有你想不到的没有我P不了的,任何正经的图片在都可以变成搞笑图片(比如下图)当然也可以用ps做一点正经的事情. 作为一个爱折腾的程序猿能用代码的解决 ...

  7. 分享一个超强的多功能截图+贴图工具Snipaste

    不知道小伙伴们都使用什么软件截图呢?QQ?今天就给大家推荐一款简单但强大的截图工具,也可以让你将截图贴回到屏幕上!Snipaste 你还可以将剪贴板里的文字或者颜色信息转化为图片窗口,并且将它们进行缩 ...

  8. 分享一个C#操作Word完整源码

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using Word = Mi ...

  9. 分享一个好用的屏幕截取动图的工具

    SceenToGif: 优点有下: 开源免费:github:https://github.com/NickeManarin/ScreenToGif/releases/tag/2.14.1 专业实用:可 ...

  10. 分享一个网址 上面的 python 库比官网还全........ .

    来自: http://blog.csdn.net/rav009/article/details/14978419 http://www.lfd.uci.edu/~gohlke/pythonlibs

最新文章

  1. 谷歌创始人“退位”,印度CEO独挑大梁
  2. 简单入门循环神经网络RNN:时间序列数据的首选神经网络
  3. 浅谈单片机程序设计中的“分层思想”!
  4. Python中通过PyPDF2实现PDF添加水印
  5. 你该认识这样的Linux_shell函数使用案例
  6. Python:模块module
  7. RabbitMQ Tutorials 3 - Publish/Subscribe 发布/订阅
  8. Git命令之查看及设置用户名邮箱
  9. 2022 数学建模B题 高教社杯 含半成品论文 部分代码 全部数学模型 和全套思路
  10. webpack 图像压缩_基于webpack的图片压缩最佳方案
  11. Python几十行代码轻松实现微信自动回复机器人
  12. 【王者荣耀】入门战斗经验
  13. Appdata中local是文件,系统盘下的文件目录
  14. 计算机技术与软件专业技术资格考试(初级程序员)(一)
  15. 毛笔行书书法-黄鹤楼
  16. API中endpoints是什么意思?
  17. 最全量子计算硬件概述(建议收藏)
  18. IDEA 创建 maven pom
  19. VMware vSphere(三)update management
  20. 蔡氏电路混沌同步Multisim实现

热门文章

  1. 用mongols轻松打造websocket应用
  2. WINHEX Scripts
  3. [转移]今天做了的一些事
  4. mysql hibernate 乱码_mysql hibernate 乱码
  5. php绕过验证码注册,验证码被绕过的处理方法_PHP教程
  6. 自适应巡航跟车距离怎么调_2020款奔驰GLS450改装原厂配件 ACC自适应巡航系统 香氛香薰负离子...
  7. word中填充效果锁定纵横比_操作基础知识Word文字编辑
  8. 打乱 数字_“142857”金字塔中的神秘数字,其中隐藏什么秘密?
  9. 局域网屏幕监控软件_如何用局域网桌面监控软件进行局域网电脑桌面监控?
  10. 【算法笔记】逆元的求解