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常用内置模块之xml模块(详解)
May 23 Python
Python实现嵌套列表及字典并按某一元素去重复功能示例
Nov 30 Python
Python实现生成随机数据插入mysql数据库的方法
Dec 25 Python
python DataFrame 修改列的顺序实例
Apr 10 Python
Python 中的Selenium异常处理实例代码
May 03 Python
Python切片索引用法示例
May 15 Python
解决python给列表里添加字典时被最后一个覆盖的问题
Jan 21 Python
将python2.7添加进64位系统的注册表方式
Nov 20 Python
Python之Class&amp;Object用法详解
Dec 25 Python
python如何调用java类
Jul 05 Python
Python中re模块的元字符使用小结
Apr 07 Python
python中redis包操作数据库的教程
Apr 19 Python
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
浅析Python中的套接字编程
Python中使用ipython的详细教程
详解Python类和对象内容
python析构函数用法及注意事项
Jun 22 #Python
Python自动化测试PO模型封装过程详解
python中的class_static的@classmethod的巧妙用法
Jun 22 #Python
You might like
PHILIPS D1835/D1875的电路分析与打理
2021/03/02 无线电
10个实用的PHP代码片段
2011/09/02 PHP
php结合mysql与mysqli扩展处理事务的方法
2016/06/29 PHP
浅谈PHP中的Trait使用方法
2019/03/22 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
node.js中使用socket.io的方法
2014/12/15 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
jQuery+CSS3实现四种应用广泛的导航条制作实例详解
2016/09/17 Javascript
简单理解vue中Props属性
2016/10/27 Javascript
微信小程序 合法域名校验出错详解及解决办法
2017/03/09 Javascript
JS检测数组类型的方法小结
2017/03/14 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
VSCode中如何利用d.ts文件进行js智能提示
2018/04/13 Javascript
使用Node.js写一个代码生成器的方法步骤
2019/05/10 Javascript
利用js-cookie实现前端设置缓存数据定时失效
2019/06/18 Javascript
layui表格 列自动适应大小失效的解决方法
2019/09/06 Javascript
vue大型项目之分模块运行/打包的实现
2020/09/21 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
[47:18]完美世界DOTA2联赛循环赛 IO vs FTD BO2第一场 11.05
2020/11/06 DOTA
详解python的几种标准输出重定向方式
2016/08/15 Python
python 划分数据集为训练集和测试集的方法
2018/12/11 Python
Django框架中序列化和反序列化的例子
2019/08/06 Python
python语言线程标准库threading.local解读总结
2019/11/10 Python
python thrift 实现 单端口多服务的过程
2020/06/08 Python
浅谈Python 钉钉报警必备知识系统讲解
2020/08/17 Python
python openssl模块安装及用法
2020/12/06 Python
巴黎卡诗美国官方网站:始于1964年的头发头皮护理专家
2017/07/10 全球购物
Douglas意大利官网:购买香水和化妆品
2020/05/27 全球购物
学校班班通实施方案
2014/06/11 职场文书
企业三严三实学习心得体会
2014/10/13 职场文书
廉政承诺书范文
2015/04/28 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
有关保护环境的宣传标语100条
2019/08/07 职场文书
python树莓派通过队列实现进程交互的程序分析
2021/07/04 Python
OpenFeign实现远程调用
2022/08/14 Java/Android