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中endswith()函数的基本使用
Apr 07 Python
Python制作数据导入导出工具
Jul 31 Python
Python使用Redis实现作业调度系统(超简单)
Mar 22 Python
Python极简代码实现杨辉三角示例代码
Nov 15 Python
Python实现的生产者、消费者问题完整实例
May 30 Python
python实现txt文件格式转换为arff格式
May 31 Python
python 创建一个空dataframe 然后添加行数据的实例
Jun 07 Python
python实现猜数字游戏
Mar 25 Python
python 实现图像快速替换某种颜色
Jun 04 Python
Python基于network模块制作电影人物关系图
Jun 19 Python
python中字典增加和删除使用方法
Sep 30 Python
Python通过format函数格式化显示值
Oct 17 Python
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
浅析Python中的套接字编程
Python中使用ipython的详细教程
详解Python类和对象内容
python析构函数用法及注意事项
Jun 22 #Python
Python自动化测试PO模型封装过程详解
python中的class_static的@classmethod的巧妙用法
Jun 22 #Python
You might like
修改了一个很不错的php验证码(支持中文)
2007/02/14 PHP
PHP学习笔记之二 php入门知识
2011/01/12 PHP
20个PHP常用类库小结
2011/09/11 PHP
PHP 5.6.11中CURL模块问题的解决方法
2016/08/08 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
2016/12/27 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
2019/02/28 PHP
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
javascript不同页面传值的改进版
2008/09/30 Javascript
javascript attachEvent绑定多个事件执行顺序问题
2010/10/20 Javascript
基于jquery ajax 用户无刷新登录方法详解
2012/04/28 Javascript
JS去除字符串两端空格的简单实例
2013/12/27 Javascript
js操作滚动条事件实例
2015/01/29 Javascript
js+cookies实现悬浮购物车的方法
2015/05/25 Javascript
node.js调用C++开发的模块实例
2015/07/03 Javascript
基于jquery实现一个滚动的分步注册向导-附源码
2015/08/26 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
ECMAScript6轮播图实践知识总结
2016/08/17 Javascript
jQuery使用正则验证15/18身份证的方法示例
2017/04/27 jQuery
JS判断一个数是否是水仙花数
2017/06/11 Javascript
react-native之ART绘图方法详解
2017/08/08 Javascript
Vue中使用方法、计算属性或观察者的方法实例详解
2018/10/31 Javascript
Vue.js如何使用Socket.IO的示例代码
2019/09/05 Javascript
使用Karma做vue组件单元测试的实现
2020/01/16 Javascript
vue2.x数组劫持原理的实现
2020/04/19 Javascript
Vue 组件注册全解析
2020/12/17 Vue.js
[07:43]《辉夜杯》公开赛晋级外卡赛战队—TRG训练生活探秘
2015/12/11 DOTA
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
2017/09/08 Python
python语言的优势是什么
2020/06/17 Python
路易威登和香奈儿手袋:LuxeDH
2017/01/12 全球购物
英国最大的手表网站:The Watch Hut
2017/03/31 全球购物
阿里巴巴美国:Alibaba美国
2019/11/24 全球购物
运动会通讯稿300字
2015/07/20 职场文书
2016年感恩教师节活动总结
2016/04/01 职场文书
详解如何在Canvas中添加事件的方法
2021/04/17 Javascript