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]匹配數字;


以上,如果對你有幫助的話,點個贊吧❤️~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM