这个是个比较常见的需求,比如你在某个网站上发布了图片,在图片上就会出现带你昵称的水印。那么在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/

最新文章

  1. silverLight--绑定数据dataGrid
  2. wifi 驱动移植范例
  3. nwe
  4. android XMl 解析神奇xstream 二: 把对象转换成xml
  5. 原创:分享asp.net伪静态成目录形式iis如何设置
  6. 如何根据IP查找计算机名
  7. [Linux]学习笔记(4)-su及passwd的用法介绍
  8. jquery.validate.js默认配置,jquery.validate.js自定义提示信息
  9. 使用Maven构建Web项目的目录结构
  10. SQL点滴19—T-SQL中的透视和逆透视
  11. PAT (Advanced Level) 1073. Scientific Notation (20)
  12. Linux-ubuntu安装过程讲解
  13. Error getting nested result map values for 'company'. Cause: java.sql.SQLException: Invalid value for getInt() - 'NFHK188'
  14. 巧用Handler获取View控件信息
  15. ReSharper导致Visual Studio缓慢?
  16. [Jmeter] 在jenkins上通过命令行运行时,针对单个listener生成的chart报告,并通过邮件发送出来
  17. MySQL中的基本SQL语句
  18. python开发_thread_线程基础
  19. 【GitHub】 README.ME 格式
  20. C# superGridControl 样式设置、加载数据、获取数据

热门文章

  1. PHP 1-16课
  2. ios--->const 用法总结
  3. Docker | Mac 通过 Docker 安装 Oracle
  4. Windows10怎么用Administrator登录?
  5. 快速理解DevOps概念和意义-兼谈SRE
  6. Maven - 配置管理
  7. Java并发编程(二):volatile关键字
  8. Flink 1.10 正式发布!——与Blink集成完成,集成Hive,K8S
  9. C编程规范
  10. QtGui实现计算圆的面积