python 对图片进行简单的处理


Posted in Python onJune 23, 2021
目录
  • 安装Pillow包
  • 图片划线
  • 图片写字
  • 图片加图片水印
  • 图片模糊
  • 图片截取
  • 总结

 

安装Pillow包

pip install Pillow

 

图片划线

from PIL import Image, ImageDraw
im = Image.open("blur.jpg")
draw = ImageDraw.Draw(im)
draw.line((0, 0) + im.size, fill=128)
draw.line((0, im.size[1], im.size[0], 0), fill=128)
del draw
# write to stdout
im.save("blur.jpg", "PNG")

 

图片写字

有的时候我们可能需要往图片上写一些文字,比如说水印什么的,只要选择好我们本地的字体文件,直接就可以在图片上写字了

from PIL import ImageFont, ImageDraw,Image, ImageDraw
image = Image.open("image.png").convert('RGBA')
txt=Image.new('RGBA', image.size, (0,0,0,0))
font=ImageFont.truetype("c:/Windows/fonts/Tahoma.ttf", 20)
draw=ImageDraw.Draw(txt)
draw.text((txt.size[0]-100, txt.size[1]-30), "linshiyingdi", font=font)
out=Image.alpha_composite(image, txt)
out.save("imageWithText.png", "png")
out.show()

 

图片加图片水印

文字水印有时候不好看,想改成图片水印,也是可以的

from PIL import ImageFont, ImageDraw, Image, ImageDraw

image = Image.open("image.png")
logo = Image.open("logo.png")
layer = Image.new('RGBA', image.size, (0, 0, 0, 0))
layer.paste(logo, (50, 60))
out = Image.composite(layer, image, layer)
out.save("imageWithLogo.png", "png")
out.show()

如果水印图片过大时,可以直接缩小点,直接使用图片自带的thumbnail方法就行

from PIL import ImageFont, ImageDraw, Image, ImageDraw

image = Image.open("image.png")
logo = Image.open("logo.png")
logo.thumbnail((200, 100))
layer = Image.new('RGBA', image.size, (0, 0, 0, 0))
layer.paste(logo, (50, 60))
out = Image.composite(layer, image, layer)
out.save("imageWithLogo.png", "png")
out.show()

如下图,我们的水印图片放到了左上角,大小也非常合适。

python 对图片进行简单的处理

 

图片模糊

from PIL import Image, ImageFilter
# 打开一个jpg图像文件,直接放到当前路径下方便点:
im = Image.open('2822.jpg')
# 应用模糊滤镜:
im2 = im.filter(ImageFilter.BLUR)
im2.save('blur.jpg', 'jpeg')

 

图片截取

from PIL import Image
img = Image.open("image.png")
print(img.size)
cropped = img.crop((0, 0, 1303, 734))  # (left, upper, right, lower)
cropped.save("imageCropped.png")

可以看到的是如果这个图片的长度和宽度比1303和734小的时候会有透明的填充,感觉很难看,可以将对应的长度和宽度和这两个数字做个判断

from PIL import Image

img = Image.open("image.png")
print(img.size)
right = 1303
lower = 734
if img.size[0] < 1303:
    right = img.size[0]
if img.size[1] < 734:
    lower = img.size[1]
cropped = img.crop((0, 0, right, lower))  # (left, upper, right, lower)
cropped.save("imageCropped.png")

这样白边就被干掉了

 

总结

人生苦短,我用 Python,在强大的Pillow帮助下,我们只需几行代码就可以实现图片的各种处理。

以上就是python 对图片进行简单的处理的详细内容,更多关于python 图片处理的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
为Python的Tornado框架配置使用Jinja2模板引擎的方法
Jun 30 Python
搭建Python的Django框架环境并建立和运行第一个App的教程
Jul 02 Python
python进阶_浅谈面向对象进阶
Aug 17 Python
python利用dir函数查看类中所有成员函数示例代码
Sep 08 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
Nov 15 Python
python在ubuntu中的几种安装方法(小结)
Dec 08 Python
Python实现App自动签到领取积分功能
Sep 29 Python
Python实现多态、协议和鸭子类型的代码详解
May 05 Python
如何基于python操作excel并获取内容
Dec 24 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
Jun 03 Python
如何基于Python按行合并两个txt
Nov 03 Python
Python基于template实现字符串替换
Nov 27 Python
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
浅析Python中的套接字编程
Python中使用ipython的详细教程
详解Python类和对象内容
python析构函数用法及注意事项
Jun 22 #Python
Python自动化测试PO模型封装过程详解
python中的class_static的@classmethod的巧妙用法
Jun 22 #Python
You might like
开源SNS系统-ThinkSNS
2008/05/18 PHP
php使用curl抓取qq空间的访客信息示例
2014/02/28 PHP
php实现当前页面点击下载文件的实例代码
2016/11/16 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
Prototype1.6 JS 官方下载地址
2007/11/30 Javascript
跨域表单提交状态的变相判断代码
2009/11/12 Javascript
JS图像无缝滚动脚本非常好用
2014/02/10 Javascript
js实现按Ctrl+Enter发送效果
2014/09/18 Javascript
动态加载jQuery的两种方法实例分析
2015/07/17 Javascript
JavaScript中的Array 对象(数组对象)
2016/06/02 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
JQuery PHP图片在线裁剪实例
2020/07/27 Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
2017/04/19 Javascript
vue2.0结合Element-ui实战案例
2019/03/06 Javascript
layui给下拉框、按钮状态、时间赋初始值的方法
2019/09/10 Javascript
JS中准确判断变量类型的方法
2020/06/01 Javascript
如何利用Node.js与JSON搭建简单的动态服务器
2020/06/16 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
2020/08/11 Javascript
python中如何使用正则表达式的集合字符示例
2017/10/09 Python
PyCharm代码格式调整方法
2018/05/23 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
解决python 自动安装缺少模块的问题
2018/10/22 Python
为什么你还不懂得怎么使用Python协程
2019/05/13 Python
python递归法实现简易连连看小游戏
2020/03/25 Python
python datetime处理时间小结
2020/04/16 Python
opencv python 对指针仪表读数识别的两种方式
2021/01/14 Python
python实现银行账户系统
2021/02/22 Python
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
德国高性价比网上药店:medpex
2017/07/09 全球购物
全球最大的户外用品零售商之一:The House
2018/06/12 全球购物
陈欧的广告词
2014/03/18 职场文书
公司晚会策划方案
2014/05/17 职场文书
小学教师年度个人总结
2015/02/05 职场文书
Python Django框架介绍之模板标签及模板的继承
2021/05/27 Python
Redis官方可视化工具RedisInsight安装使用教程
2022/04/19 Redis
Java异常体系非正常停止和分类
2022/06/14 Java/Android