Python如何為圖片添加水印
添加水印的主要目的是為了版權(quán)保護(hù),使自己的圖像不被抄襲或者惡意轉(zhuǎn)載。網(wǎng)上有很多制作水印的工具,本帖介紹怎么使用Python-Pillow庫(kù)給圖片添加水印。
使用ImageMagick添加圖片水?。璍inux 添加文本水印
在圖片右下角添加文字:
from PILimport Image, ImageDraw, ImageFont
# 指定要使用的字體和大?。?Library/Fonts/是macOS字體目錄;Linux的字體目錄是/usr/share/fonts/
font = ImageFont.truetype('/Library/Fonts/Arial.ttf', 24)
# 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)
# 設(shè)置文本文字位置
print(rgba_image)
text_xy = (rgba_image.size[0] - text_size_x, rgba_image.size[1] - text_size_y)
# 設(shè)置文本顏色和透明度
image_draw.text(text_xy, text, font=font, fill=(76, 234, 124, 180))
image_with_text = Image.alpha_composite(rgba_image, text_overlay)
return image_with_text
im_before = Image.open("lena.jpg")
im_before.show()
im_after = add_text_to_image(im_before, 'WTF')
im_after.show()
# im.save('im_after.jpg')

添加圖片水印
fromPILimportImage, ImageDraw
defadd_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)
return rgba_image
im_before = Image.open("lena.jpg")
im_before.show()
im_watermark = Image.open("watermark.jpg")
im_after = add_watermark_to_image(im_before, im_watermark)
im_after.show()
# im.save('im_after.jpg')

相關(guān)文章
python實(shí)現(xiàn)flappy bird游戲
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)flappy bird游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12
Python數(shù)據(jù)可視化常用4大繪圖庫(kù)原理詳解
這篇文章主要介紹了Python數(shù)據(jù)可視化常用4大繪圖庫(kù)原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
淺談tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意點(diǎn)
這篇文章主要介紹了淺談tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意點(diǎn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
python 使用Yolact訓(xùn)練自己的數(shù)據(jù)集
這篇文章主要介紹了python 使用Yolact訓(xùn)練自己的數(shù)據(jù)集,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04
Python中使用logging模塊代替print(logging簡(jiǎn)明指南)
這篇文章主要介紹了Python中使用logging模塊代替print的好處說(shuō)明,主旨是logging模塊簡(jiǎn)明指南,logging模塊的使用方法介紹,需要的朋友可以參考下2014-07-07
Python中使用實(shí)現(xiàn)輸出哈沙德數(shù)的多種方法小結(jié)
哈沙德數(shù)(Harshad?Number),又稱Niven數(shù),是指一個(gè)自然數(shù),它可以被它的各位數(shù)字之和整除,本文將探討如何使用多種不同的方法來(lái)判斷一個(gè)數(shù)字是否是哈沙德數(shù),感興趣的可以了解下2024-01-01
Python+wxPython實(shí)現(xiàn)合并多個(gè)文本文件
在?Python?編程中,我們經(jīng)常需有時(shí)候,我們可能需要將多個(gè)文本文件合并成一個(gè)文件,要處理文本文件,本文就來(lái)介紹下如何使用?wxPython?模塊編寫一個(gè)簡(jiǎn)單的程序,能夠讓用戶選擇多個(gè)文本文件,感興趣的可以了解下2023-08-08
Django實(shí)現(xiàn)CAS+OAuth2的方法示例
這篇文章主要介紹了Django實(shí)現(xiàn)CAS+OAuth2的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Pytorch在訓(xùn)練時(shí)凍結(jié)某些層使其不參與訓(xùn)練問(wèn)題(更新梯度)
這篇文章主要介紹了Pytorch在訓(xùn)練時(shí)凍結(jié)某些層使其不參與訓(xùn)練問(wèn)題(更新梯度),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11

