您现在的位置是:网站首页>>Python>>python

python 实现图片添加文字水印

发布时间:2019-11-16 09:39:09作者:wangjian浏览量:389点赞量:0

    在python中我们可以使用openCV给图片添加水印,这里注意openCV无法添加汉字水印,添加汉字水印上可使用PIL库给图片添加水印

    一:openCV给图片添加水印

    1:安装openCV

    pip install opencv-python

    如果安装报错的话,可以参考:https://www.wj0511.com/site/detail.html?id=230

    2:使用openCV给图片添加水印实例:

    # -*- coding: utf-8 -*-
    import cv2
    # 载入突破
    img = cv2.imread('test.jpg')
    # 给图片添加文字水印
    # cv2.putText(图像,需要添加字符串,需要绘制的坐标,字体类型,字号,字体颜色,字体粗细)
    img2 = cv2.putText(img, 'test', (100, 100), cv2.LINE_AA, 2, (249, 249, 249), 4)
    # 保存图片
    cv2.imwrite('wj.jpg', img2)
    # 下面是将生成的图片再弹窗中显示
    cv2.imshow('img',img2)
    cv2.waitKey(0)
    cv2.destoryAllWindows('img')

    根据如上代码生成的水印图片如下:

    image.png

    二:使用PIL给图片添加水印

    # -*- coding: utf-8 -*-
    import cv2
    import numpy
    from PIL import Image, ImageDraw, ImageFont
    img = cv2.imread('test.jpg')
    # 判断是否是openCV图片类型
    if (isinstance(img, numpy.ndarray)):
        # 转化成PIL类型
        img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    draw = ImageDraw.Draw(img)
    # 字体的格式
    textSize = 80
    fontStyle = ImageFont.truetype(
        "font/simsun.ttc", textSize, encoding="utf-8")
    # 绘制文本
    left = 100
    top = 100
    text = '中国'
    textColor = (168, 121, 103)
    draw.text((left, top), text, textColor, font=fontStyle)
    # 转换回OpenCV类型
    img2 = cv2.cvtColor(numpy.asarray(img), cv2.COLOR_RGB2BGR)
    # 保存图片
    cv2.imwrite('wj.jpg', img2)
    cv2.imshow('img',img2)
    cv2.waitKey(0)
    cv2.destoryAllWindows('img')

    根据如上代码现象如下:

    image.png

0 +1