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程序的执行效率的教程
Apr 02 Python
Python遍历文件夹和读写文件的实现方法
May 10 Python
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
Apr 18 Python
对python过滤器和lambda函数的用法详解
Jan 21 Python
django框架使用orm实现批量更新数据的方法
Jun 21 Python
将python运行结果保存至本地文件中的示例讲解
Jul 11 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
Aug 14 Python
Pytorch 实现权重初始化
Dec 31 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
Feb 11 Python
解决Python数据可视化中文部分显示方块问题
May 16 Python
详解python模块pychartdir安装及导入问题
Oct 22 Python
Django url 路由匹配过程详解
Jan 22 Python
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
浅析Python中的套接字编程
Python中使用ipython的详细教程
详解Python类和对象内容
python析构函数用法及注意事项
Jun 22 #Python
Python自动化测试PO模型封装过程详解
python中的class_static的@classmethod的巧妙用法
Jun 22 #Python
You might like
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
MySQL连接数超过限制的解决方法
2011/07/17 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
jquery $.ajax入门应用一
2008/11/19 Javascript
javascript Prototype 对象扩展
2009/05/15 Javascript
Javascript 阻止javascript事件冒泡,获取控件ID值
2009/06/27 Javascript
jQuery数组处理代码详解(含实例演示)
2012/02/03 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
2014/09/04 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
JavaScript自定义等待wait函数实例分析
2015/03/23 Javascript
javascript中Date format(js日期格式化)方法小结
2015/12/17 Javascript
JS模拟按钮点击功能的方法
2015/12/22 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
Canvas 绘制粒子动画背景
2017/02/15 Javascript
VUE实现一个分页组件的示例
2017/09/13 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
小程序实现多选框功能
2018/10/30 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
详解JavaScript作用域、作用域链和闭包的用法
2020/09/03 Javascript
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
2013/12/08 Python
python实现监控linux性能及进程消耗性能的方法
2014/07/25 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
Python 的类、继承和多态详解
2017/07/16 Python
python3实现mysql导出excel的方法
2019/07/31 Python
基于Pycharm加载多个项目过程图解
2020/01/19 Python
Python for循环通过序列索引迭代过程解析
2020/02/07 Python
解决python执行较大excel文件openpyxl慢问题
2020/05/15 Python
Python 的 __str__ 和 __repr__ 方法对比
2020/09/02 Python
Python爬取某平台短视频的方法
2021/02/08 Python
美国在线旅行社:Crystal Travel
2018/09/11 全球购物
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
初三物理教学反思
2014/01/21 职场文书
责任担保书范文
2014/05/21 职场文书
离婚协议书范本及离婚须知
2014/10/15 职场文书
幼儿园小班家长评语
2014/12/30 职场文书
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang