給圖片添加文字水印
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()