陕西快乐十分推荐号码:the5fire的技术博客

彩票开奖查询 www.8a72.cn 关注Python、Django、Vim、Linux、Web开发、团队管理和互联网--Life is short, we need Python.


Python 中使用 Pillow 处理图片增加水印

作者:the5fire | 标签:       | 发布:2019-01-12 5:20 p.m. | 阅读量: 635, 590

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

微信公众号:Python程序员杂谈



其他分类:
  • 鹿晗全新Remix专辑《Re:Play》发布 首支单曲全球上线鹿晗 专辑 2019-03-21
  • 【奋斗吧2018】风电检修工——荒原上的“听风者” 2019-03-21
  • 世界杯还可以这样看 日媒:中国AI产品抢眼亚洲电子展} 2019-02-27
  • 特朗普下令美国防部组建第六军种“太空军” 2019-02-17
  • 标致1008假想图曝光 主打小型SUV市场 2019-02-11
  • 美俄掀起新一轮互相制裁风波。 2019-02-08
  • 荷兰成国旗最大购买地-热门标签-华商网数码 2019-02-08
  • 浅析网络视频主持人的语言特点 2019-01-27
  • 防弹少年团刷新自身纪录 破亿 MV 之首出炉! 点阅 2019-01-25
  • 人民日报创刊70周年,社长李宝善提了13个“不会忘记” 2019-01-22
  • 【理上网来喜迎十九大】郑永年:希望十九大成为中华民族复兴的一个伟大转折点 2019-01-15
  • 一周人事:黑龙江、浙江等7省份12名省委常委履新 2019-01-01
  • 女子谎称刷单提成骗贫困大学生16万 用于买化妆品 2018-12-01
  • 西安体育学院体育传媒系与西部网签约校媒合作 2018-12-01
  • 网络投票刷礼物能不能帮孩子“争上游”? 2018-11-28
  • 950| 607| 667| 15| 363| 201| 123| 909| 735| 613|