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中for循环的使用
Apr 14 Python
使用Python编写提取日志中的中文的脚本的方法
Apr 30 Python
python爬虫入门教程--利用requests构建知乎API(三)
May 25 Python
python复制文件到指定目录的实例
Apr 27 Python
Django开发的简易留言板案例详解
Dec 04 Python
利用python脚本如何简化jar操作命令
Feb 24 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
Jul 09 Python
解决django 新增加用户信息出现错误的问题
Jul 28 Python
pytorch 自定义数据集加载方法
Aug 18 Python
解决pycharm 安装numpy失败的问题
Dec 05 Python
Pytorch 如何实现LSTM时间序列预测
May 17 Python
解决pytorch-gpu 安装失败的记录
May 24 Python
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
浅析Python中的套接字编程
Python中使用ipython的详细教程
详解Python类和对象内容
python析构函数用法及注意事项
Jun 22 #Python
Python自动化测试PO模型封装过程详解
python中的class_static的@classmethod的巧妙用法
Jun 22 #Python
You might like
Windows 下的 PHP-PEAR 安装方法
2010/11/20 PHP
Symfony学习十分钟入门经典教程
2016/02/03 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
jquery URL参数判断,确定菜单样式
2010/05/31 Javascript
jquery 学习之二 属性 文本与值(text,val)
2010/11/25 Javascript
JavaScript 产生不重复的随机数三种实现思路
2012/12/13 Javascript
写得不错的jquery table鼠标经过变色代码
2013/09/27 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
JQuery结合CSS操作打印样式的方法
2013/12/24 Javascript
Node.js安装教程和NPM包管理器使用详解
2014/08/16 Javascript
js创建对象的方式总结
2015/01/10 Javascript
jQuery中extend()和fn.extend()方法详解
2015/06/03 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
2016/06/17 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
2017/02/08 Javascript
深入理解Vue官方文档梳理之全局API
2017/11/22 Javascript
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
微信小程序扫描二维码获取信息实例详解
2019/05/07 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
[02:42]DOTA2城市挑战赛收官在即 四强之争风起云涌
2018/06/05 DOTA
python字典多条件排序方法实例
2014/06/30 Python
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
Python 3实战爬虫之爬取京东图书的图片详解
2017/10/09 Python
详解tensorflow实现迁移学习实例
2018/02/10 Python
Python实现的HMacMD5加密算法示例
2018/04/03 Python
python实现多层感知器MLP(基于双月数据集)
2019/01/18 Python
pandas将list数据拆分成行或列的实现
2020/12/13 Python
详解CSS3 弹性布局快速入门
2019/06/06 HTML / CSS
日语专业个人求职信范文
2014/02/02 职场文书
国庆节新闻稿
2015/07/17 职场文书
《观潮》教学反思
2016/02/17 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python
Qt数据库应用之实现图片转pdf
2022/06/01 Java/Android