Python 中使用 Pillow 处理图片增加水印
2024-09-06 18:39:32
这个是个比较常见的需求,比如你在某个网站上发布了图片,在图片上就会出现带你昵称的水印。那么在Python中应该如何处理这一类需求呢?
其实在我的《Django实战开发》视频教程中有讲到这一部分,Django结合了xadmin,再集成进来 django-ckeditor之后,有了比较方便的富文本编辑器了,对于图片也就需要增加一个水印的功能。这里把其中的代码抽一部分出来,仅供参考。
需要先安装Pillow: pip install pillow
Demo代码:
import sys from PIL import Image, ImageDraw, ImageFont def watermark_with_text(file_obj, text, color, fontfamily=None):
image = Image.open(file_obj).convert('RGBA')
draw = ImageDraw.Draw(image)
width, height = image.size
margin = 10
if fontfamily:
font = ImageFont.truetype(fontfamily, int(height / 20))
else:
font = None
textWidth, textHeight = draw.textsize(text, font)
x = (width - textWidth - margin) / 2 # 计算横轴位置
y = height - textHeight - margin # 计算纵轴位置
draw.text((x, y), text, color, font) return image if __name__ == '__main__':
org_file = sys.argv[1]
with open(org_file, 'rb') as f:
image_with_watermark = watermark_with_text(f, 'the5fire.com', 'red') with open('new_image_water.png', 'wb') as f:
image_with_watermark.save(f)
马蜂窝游记推广 蜘蛛池程序下载安装 http://mseo.chinaz.com/asdasdasd.nx04.com/ http://seo.chinaz.com/sdfasd.nx04.com/
最新文章
- silverLight--绑定数据dataGrid
- wifi 驱动移植范例
- nwe
- android XMl 解析神奇xstream 二: 把对象转换成xml
- 原创:分享asp.net伪静态成目录形式iis如何设置
- 如何根据IP查找计算机名
- [Linux]学习笔记(4)-su及passwd的用法介绍
- jquery.validate.js默认配置,jquery.validate.js自定义提示信息
- 使用Maven构建Web项目的目录结构
- SQL点滴19—T-SQL中的透视和逆透视
- PAT (Advanced Level) 1073. Scientific Notation (20)
- Linux-ubuntu安装过程讲解
- Error getting nested result map values for 'company'. Cause: java.sql.SQLException: Invalid value for getInt() - 'NFHK188'
- 巧用Handler获取View控件信息
- ReSharper导致Visual Studio缓慢?
- [Jmeter] 在jenkins上通过命令行运行时,针对单个listener生成的chart报告,并通过邮件发送出来
- MySQL中的基本SQL语句
- python开发_thread_线程基础
- 【GitHub】 README.ME 格式
- C# superGridControl 样式设置、加载数据、获取数据