内容简介:这个是个比较常见的需求,比如你在某个网站上发布了图片,在图片上就会出现带你昵称的水印。那么在Python中应该如何处理这一类需求呢?其实在我的《Django实战开发》视频教程中有讲到这一部分,Django结合了xadmin,再集成进来 django-ckeditor之后,有了比较方便的富文本编辑器了,对于图片也就需要增加一个水印的功能。这里把其中的代码抽一部分出来,仅供参考。需要先安装Pillow:
这个是个比较常见的需求,比如你在某个网站上发布了图片,在图片上就会出现带你昵称的水印。那么在 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)
使用方法: python watermart.py <图片地址>
这个只是把文本嵌入到图片中的实现,其实也可以嵌入一个图片进去的。具体可以参考:
https://pillow.readthedocs.io/en/3.1.x/reference/Image.html#PIL.Image.alpha_composite
相关文章:
- from the5fire.com
----EOF-----
微信公众号:Python程序员杂谈
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- DuckChat 1.1.3 发布,增加聊天水印、撤回功能等若干优化
- Python+OpenCV为图片添加中文水印与图片水印
- 工具系列--简单水印(watermark-dom)和算法水印(频域方式图片合并)实现
- 插件系列--简单水印(watermark-dom)和算法水印(频域方式图片合并)实现
- 前端页面水印生成实现
- 浅谈前端水印
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。