Python给图片添加文字/图片水印

给图片添加文字水印

from PIL import Image, ImageDraw, ImageFont
  
# 指定要使用的字体和大小;
#font = ImageFont.truetype('C:/Windows/Fonts/simsun.ttc', 44,index=0)
font = ImageFont.truetype('C:/Windows/Fonts/simhei.ttf', 44,index=0)

  
# image: 图片  text:要添加的文本 font:字体
def add_text_to_image(image, text, font=font):
  rgba_image = image.convert('RGBA')
  text_overlay = Image.new('RGBA', rgba_image.size, (255, 255, 255, 0))
  image_draw = ImageDraw.Draw(text_overlay) 
  text_size_x, text_size_y = image_draw.textsize(text, font=font)
  # 设置文本文字位置
  print(rgba_image)

  #text_xy = (rgba_image.size[0] - text_size_x, rgba_image.size[1] - text_size_y)  #底部
  text_xy = ((rgba_image.size[0] - text_size_x)/2, (rgba_image.size[1] - text_size_y)/2) #中间
  #size[0]是长,size[1]是宽

  # 设置文本颜色和透明度
  # image_draw.text(text_xy, text, font=font, fill=(76, 234, 124, 180))
  image_draw.text(text_xy, text, font=font, fill=(225, 225, 225, 225))
  
  image_with_text = Image.alpha_composite(rgba_image, text_overlay)
  
  return image_with_text
  
im_before = Image.open("my.png")

# im_before.show()  #打开图片
im_after = add_text_to_image(im_before, """
  我曾经以为 
  一个人的感情和依赖
  从有到无
  会是一个渐渐消减的过程
  但事实是
  它会在某一个时刻
  甚至某一个瞬间
  突然地立减为零\n\n"""+
  """    - 网易云音乐""")
im_after.show()
# im.save('im_after.jpg')

 

给图片添加图片水印

from PIL import Image, ImageDraw
  
def add_watermark_to_image(image, watermark):
  rgba_image = image.convert('RGBA')
  rgba_watermark = watermark.convert('RGBA')
  
  image_x, image_y = rgba_image.size
  watermark_x, watermark_y = rgba_watermark.size
  
  # 缩放水印图片
  scale = 10
  watermark_scale = max(image_x / (scale * watermark_x), image_y / (scale * watermark_y))
  new_size = (int(watermark_x * watermark_scale), int(watermark_y * watermark_scale))
  rgba_watermark = rgba_watermark.resize(new_size, resample=Image.ANTIALIAS)
  # 透明度
  rgba_watermark_mask = rgba_watermark.convert("L").point(lambda x: min(x, 180))
  rgba_watermark.putalpha(rgba_watermark_mask)
  
  watermark_x, watermark_y = rgba_watermark.size
  # 水印位置
  # rgba_image.paste(rgba_watermark, (image_x - watermark_x, image_y - watermark_y), rgba_watermark_mask) #右下角
  rgba_image.paste(rgba_watermark, (image_x - watermark_x, 0), rgba_watermark_mask) # 右上角
  
  return rgba_image
  
im_before = Image.open("my.png")
im_before.show()
  
im_watermark = Image.open("AJUN水印.jpg")
im_watermark.show()
im_after = add_watermark_to_image(im_before, im_watermark)
im_after.show()

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值