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异常学习笔记
Feb 03 Python
Django返回json数据用法示例
Sep 18 Python
Python中字典(dict)合并的四种方法总结
Aug 10 Python
使用Python快速制作可视化报表的方法
Feb 03 Python
Python实现 PS 图像调整中的亮度调整
Jun 28 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
Aug 06 Python
python实现获取单向链表倒数第k个结点的值示例
Oct 24 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
Oct 28 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
Nov 28 Python
python 视频逐帧保存为图片的完整实例
Dec 10 Python
Python爬虫防封ip的一些技巧
Aug 06 Python
聊聊python在linux下与windows下导入模块的区别说明
Mar 03 Python
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
浅析Python中的套接字编程
Python中使用ipython的详细教程
详解Python类和对象内容
python析构函数用法及注意事项
Jun 22 #Python
Python自动化测试PO模型封装过程详解
python中的class_static的@classmethod的巧妙用法
Jun 22 #Python
You might like
php 文章调用类代码
2011/08/11 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
php单一接口的实现方法
2015/06/20 PHP
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
2013/11/05 Javascript
js返回前一页刷新本页重载页面
2014/07/29 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
2014/11/23 Javascript
javascript内置对象操作详解
2015/02/04 Javascript
JQuery动态添加和删除表格行的方法
2015/03/09 Javascript
JavaScript模拟数组合并concat
2016/03/06 Javascript
jQuery给div,Span, a ,button, radio 赋值与取值
2016/06/24 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2017/01/09 Javascript
浅谈 Vue 项目优化的方法
2017/12/16 Javascript
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
vue工程全局设置ajax的等待动效的方法
2019/02/22 Javascript
koa-passport实现本地验证的方法示例
2020/02/20 Javascript
聊聊vue 中的v-on参数问题
2021/01/29 Vue.js
[37:45]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第二场 12.09
2020/12/11 DOTA
重命名批处理python脚本
2013/04/05 Python
python有证书的加密解密实现方法
2014/11/19 Python
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
读写json中文ASCII乱码问题的解决方法
2016/11/05 Python
python非递归全排列实现方法
2017/04/10 Python
Python 3.x读写csv文件中数字的方法示例
2017/08/29 Python
django中的图片验证码功能
2019/09/18 Python
python链表类中获取元素实例方法
2021/02/23 Python
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
ktv好的活动方案
2014/08/17 职场文书
党员四风问题对照检查材料
2014/09/27 职场文书
2014年人事科工作总结
2014/11/19 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书
你离财务总监还有多远?速览CFO的岗位职责
2019/11/18 职场文书
Python绘画好看的星空图
2022/03/17 Python
Nginx代理Redis哨兵主从配置的实现
2022/07/15 Servers