zoukankan      html  css  js  c++  java
  • python-批量添加图片水印

    前言:

    最近总是被无良公众号和培训机构拷贝文章,他们根本不会给你备注原文出处,这种行为真的让人不高兴,所以计划以后的文章都添加上自己的水印。
    话不多说,直接上代码。


    一、单张图片添加文字水印

    # -*- coding: utf-8 -*-
    # @Time    : 2018/5/9 上午11:31
    # @Author  : xiaoxi
    # @File    : watermark.py
    
    from PIL import Image
    from PIL import ImageDraw
    from PIL import ImageFont
    
    imageFile = "/Users/截图图库/1.jpg"
    im = Image.open(imageFile)
    font = ImageFont.truetype('/Library/Fonts/Songti.ttc', 26)
    font1 = ImageFont.truetype('/Library/Fonts/Zapfino.ttf', 16)
    
    draw = ImageDraw.Draw(im)
    draw.text((im.size[0]-330, im.size[1]-85), u'简书「小喜」', fill=(134, 153, 153), font=font)
    draw.text((im.size[0]-500, im.size[1]-45), u'http://www.jianshu.com/u/da1677475c27', fill=(134, 153, 153),font=font1)
    
    im.save(r"/Users/简书素材/target.jpg")
    

    二、单张图片添加图片水印

    # -*- coding: utf-8 -*-
    # @Time    : 2018/5/9 上午11:31
    # @Author  : xiaoxi
    # @File    : watermark.py
    
    from PIL import Image
    from PIL import ImageDraw
    from PIL import ImageFont
    
    watermark = Image.open("/Users/截图图库/5.jpg")
    imageFile = Image.open("/Users/截图图库/4.jpg")
    layer = Image.new('RGBA', imageFile.size, (0,0,0,0))
    layer.paste(watermark, (imageFile.size[0]-300, imageFile.size[1]-80))
    out=Image.composite(layer,imageFile,layer)
    out.save(r"/Users/简书素材/target.jpg")
    

    三、批量图片添加文字水印

    # -*- coding: utf-8 -*-
    # @Time    : 2018/5/9 上午11:31
    # @Author  : xiaoxi
    # @File    : watermark.py
    import datetime
    import glob
    from time import sleep
    from PIL import Image
    from PIL import ImageDraw
    from PIL import ImageFont
    
    
    def watermark():
        for files in glob.glob('/Users/截图图库/*.png'):
            font = ImageFont.truetype('/Library/Fonts/Songti.ttc', 26)
            font1 = ImageFont.truetype('/Library/Fonts/Zapfino.ttf', 16)
            im = Image.open(files)
            draw = ImageDraw.Draw(im)
            draw.text((im.size[0] - 330, im.size[1] - 85), u'简书「小喜」', fill=(134, 153, 153), font=font)
            draw.text((im.size[0] - 500, im.size[1] - 45), u'http://www.jianshu.com/u/da1677475c27', fill=(134, 153, 153), font=font1)
            dir = "/Users/简书素材/"
            name = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
            filename = dir + name + '_result.jpg'
            sleep(2)
            im.save(filename)
    
    if __name__=='__main__':
        watermark()
    

    四、相关答疑
    1、添加中文水印时,必须选择支持中文的字体,例如:font.jpg
    2、glob库
    glob库是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。跟使用 windows 下的文件搜索差不多。查找文件只用到三个匹配符:

    ”*”:匹配 0 个或多个字符;
    “?”: ”?”匹配单个字符;
    “[]”:”[]”匹配指定范围内的字符,如:[0-9]匹配数字;


    以上,如果对你有帮助的话,点个赞吧❤️~

  • 相关阅读:
    xx系统需求分析第七稿--权限管理(一)
    第四周学习进度总结
    hbase的Shell命令操作
    软件需求最佳实践读书笔记一
    hbase的Java基本操作
    Java 面向对象编程之接口
    Java 面向对象编程之继承的super关键词
    Java核心基础之数据类型
    Java 导出Excel
    JavaSE基础知识之修饰符和使用场景,你真的了解嘛
  • 原文地址:https://www.cnblogs.com/xiaoxi-3-/p/9014743.html
Copyright © 2011-2022 走看看