python 给图片添加倾斜透明文字水印

注释写在代码里面了,直接改变函数参数就可以使用,使用时注意设置字体大小、透明度、旋转角度等信息,文字位置默认为图片中心,想变动文字位置可根据代码自行修改。 

import numpy as np
from PIL import Image, ImageDraw, ImageFont
import cv2


def rotated_watermark(img_path, text, text_size):
    # 打开图片Image格式
    img1 = Image.open(img_path)
    # 图片的颜色模式设置为RBGA
    img1 = img1.convert('RGBA')
    # 新建一个和原图大小一样的水印覆盖层
    text_overlay = Image.new('RGBA', img1.size, (255, 255, 255, 0))
    # 创建一个画图对象
    image_draw = ImageDraw.Draw(text_overlay)
    # 加载系统字体,设置字体大小
    # font = ImageFont.truetype(r'C:/Windows/Fonts/msyh.ttc', text_size)  # 设置字体大小
    font = ImageFont.truetype(r'Arial.ttf', text_size)
    # 在指定位置画上文字水印
    box = image_draw.textbbox((0, 0), text, font=font)
    text_width, text_height = box[2], box[3]
    x = img1.width / 2 - text_width / 2
    y = img1.height/2 - text_height / 2
    # fill参数的最后一位为透明度,即100就是透明度
    image_draw.text((x, y), text, font=font, fill=(255, 255, 255,160))
    # rotated
    # 设置文本旋转角度
    angle = 45
    # 中心点
    center = (img1.width / 2, img1.height / 2)
    M = cv2.getRotationMatrix2D(center, angle, 1.0)
    text_overlay = cv2.warpAffine(np.array(text_overlay), M, (img1.width, img1.height), flags=cv2.INTER_CUBIC, borderMode=cv2.BORDER_REPLICATE)
    text_overlay = Image.fromarray(text_overlay)
    # 合成透明图像和背景不透明图像
    img1 = Image.alpha_composite(img1, text_overlay)
    img1 = img1.convert('RGB')
    return img1


if __name__ == "__main__":
    img = rotated_watermark('curry.jpg', "This is my fucking house", 20)
    # img.show()
    img.save("curry_mask.jpg")

 效果图:

原图:curry

文字:“This is my fucking house(这是我的主场)”

效果如下:

 如果觉得合适麻烦大家点赞啦!蟹蟹各位~~

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Python可以实现图片倾斜水印的效果。实现这个功能的方法有很多种,以下是其中一种简单的方法: 首先,需要使用Python的图像处理库PIL(Pillow)来读取和处理图片。可以使用`pip install Pillow`安装Pillow库。 接下来,需要加载原始图片和要添加水印图片。可以使用PIL库的`open()`函数来打开原始图片水印图片。 然后,通过使用PIL库的`rotate()`函数对水印图片进行倾斜处理。该函数可以指定旋转角度来实现倾斜效果。 接下来,需要将倾斜后的水印图片添加到原始图片中。可以使用PIL库的`paste()`函数将水印图片粘贴到原始图片的指定位置上。 最后,可以使用`save()`函数将修改后的图片保存到指定路径中。 以下是一个示例代码来实现图片倾斜水印: ```python from PIL import Image def add_watermark(image_path, watermark_path, output_path, angle): # 打开原始图片水印图片 image = Image.open(image_path) watermark = Image.open(watermark_path).rotate(angle, expand=1) # 将旋转后的水印图片粘贴到原始图片image.paste(watermark, (0, 0), watermark) # 保存修改后的图片 image.save(output_path) # 调用函数实现倾斜水印 add_watermark('original_image.jpg', 'watermark.png', 'output_image.jpg', 30) ``` 上述代码中的`image_path`是原始图片的路径,`watermark_path`是水印图片的路径,`output_path`是保存修改后图片的路径,`angle`是倾斜的角度。 通过以上步骤,就可以使用Python实现图片倾斜水印的效果。当然,除了上述方法,还可以使用其他图像处理库或算法来实现不同的效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖虎记录学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值