日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python批量添加水印_用Python批量添加水印,提高工作效率!

發(fā)布時(shí)間:2024/10/14 python 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python批量添加水印_用Python批量添加水印,提高工作效率! 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

平常工作中,為保護(hù)原創(chuàng),我們常常會(huì)給圖片打水印,但是一般的工具存在水印只能添加在固定位置(比如左上、左下等),或者無(wú)法批量添加水印的問(wèn)題。這些不靈活的應(yīng)用會(huì)影響我們的工作效率。

今天,未明學(xué)院的老師就用Python幫大家解決這些問(wèn)題,提高你的工作效率!

01

單張圖片加圖片水印

舉個(gè)例子,我想為這張無(wú)水印圖片打上水印:

首先導(dǎo)入用于完成打水印操作的Image模塊:

from PIL import Image

使用 open() 函數(shù)指定要作為水印的圖片:

watermark = Image.open(r"C:UsersadminDesktop運(yùn)營(yíng)批量給圖片加水印LOGO.png")

指定要打水印的圖片:

imageFile = Image.open(r"C:UsersadminDesktop運(yùn)營(yíng)批量給圖片加水印數(shù)據(jù)分析技能課.jpg")

制作一個(gè)和imageFile大小相等的透明圖片:

layer = Image.new('RGBA', imageFile.size, (0,0,0,0))

把水印圖片貼在layer圖片上,位置在右下角,距右邊線300像素,下邊線 100像素,如果layer.paste(watermark, (300, 100)),則是把水印打在左上角:

layer.paste(watermark, (imageFile.size[0]-300, imageFile.size[1]-100))

把layer和imageFile組合到一起,第2個(gè)參數(shù)是imageFile,第1、3個(gè)參數(shù)是layer:

out=Image.composite(layer,imageFile,layer)

保存帶有水印的圖片:

out.save(r"C:UsersadminDesktop運(yùn)營(yíng)批量給圖片加水印數(shù)據(jù)分析技能課_圖片水印.jpg")

現(xiàn)在可以看到圖片右下角已經(jīng)加上水印了:

02

單張圖片加文字水印

除了添加圖片水印,還可以添加文字水印!我們接著往下看~

首先,指定需要加水印的圖片:

imageFile = Image.open(r"C:UsersadminDesktop運(yùn)營(yíng)批量給圖片加水印數(shù)據(jù)分析技能課.jpg")

指定字體文件及字體大小:

font_big = ImageFont.truetype(r'C:UsersadminDesktop運(yùn)營(yíng)批量給圖片加水印NotoSansCJKsc-Black.otf', 24)

font_samll = ImageFont.truetype(r'C:UsersadminDesktop運(yùn)營(yíng)批量給圖片加水印NotoSansCJKsc-Black.otf', 15)

指定需要刻畫(huà)的文字:

text1 = '未明學(xué)院'

text2 = 'http://www.enaca.cn'

準(zhǔn)備在imageFile上刻畫(huà)文字:

draw = ImageDraw.Draw(imageFile)

(imageFile.size[0]-450, imageFile.size[1]-85)用于指定刻畫(huà)的文本的位置,以左上角為原點(diǎn);text1和text2是要刻畫(huà)的文本;fill設(shè)置刻畫(huà)的文本的顏色,依次為RGB;font指定刻畫(huà)的字體和大小:

draw.text((imageFile.size[0]-450, imageFile.size[1]-85), text1, fill=(134, 153, 153), font=font_big)

draw.text((imageFile.size[0]-485, imageFile.size[1]-45), text2, fill=(134, 153, 153),font=font_samll)

最后只需導(dǎo)出圖像:

imageFile.save(r"C:UsersadminDesktop運(yùn)營(yíng)批量給圖片加水印數(shù)據(jù)分析技能_文字水印.png")

一張帶文字水印的圖片就新鮮出爐啦~

03

批量添加圖片水印

如果圖片太多,還可以直接批量打水印。

首先,導(dǎo)入os模塊和Image模塊,前者用于獲取文件路徑,創(chuàng)建文件等操作;后者用于完成打水印操作:

import os

from PIL import Image

指定需要打水印的批量圖片所在的文件夾:

start_folder =r"C:UsersadminDesktop運(yùn)營(yíng)批量給圖片加水印等待打水印的圖片"

指定圖片打完水印之后保存的目的地文件夾:

target_folder = r"C:UsersadminDesktop運(yùn)營(yíng)批量給圖片加水印完成打水印的圖片"

如果指定的目的地文件夾不存在,那么就創(chuàng)建一個(gè),如果存在就不需要?jiǎng)?chuàng)建了。

注意:target_folder只是一個(gè)代表路徑的字符串,真正創(chuàng)建文件夾需要os.mkdir(today):

if not os.path.exists(target_folder):

os.mkdir(target_folder)

使用for...in遍歷批量加水印,取出start_folder內(nèi)的每一張圖片進(jìn)行打水印操作;其中os.listdir(start_folder)是start_folder文件夾下的每個(gè)文件的名字構(gòu)成的列表:

for i in os.listdir(start_folder):

分別構(gòu)建需要打水印的圖片的完整路徑start_file和打完水印的圖片的完整路徑target_file,包括所在文件夾、 和它的名字三個(gè)部分;其中os.sep 代表在路徑中的一個(gè) 。這兩個(gè)句子放在for循環(huán)中遍歷:

start_file = start_folder + os.sep + i

target_file = target_folder + os.sep + i

以下部分參考前面單張圖片打水印的代碼說(shuō)明~

指定作為水印的圖片:

watermark = Image.open(r"C:UsersadminDesktop運(yùn)營(yíng)批量給圖片加水印LOGO.png")

指定要打水印的圖片:

imageFile = Image.open(start_file)

制作一個(gè)和imageFile大小相等的透明圖片:

layer = Image.new('RGBA', imageFile.size, (0,0,0,0))

指定水印在圖片中的位置,右下角:

layer.paste(watermark, (imageFile.size[0]-300, imageFile.size[1]-100))

把layer和imageFile組合到一起,第2個(gè)參數(shù)是imageFile,第1、3個(gè)參數(shù)是layer:

out=Image.composite(layer,imageFile,layer)

保存帶有水印的圖片:

out.save(target_file)

print(target_file + 'OK!')

沒(méi)添加水印前:

添加水印后:

看了未明這么多期的技能貼,是不是感覺(jué)python很強(qiáng)大!

python可能除了不會(huì)生孩子,其他的什么都可以了~

原創(chuàng)不易,覺(jué)得本篇文章有用的話,請(qǐng)點(diǎn)個(gè)贊吧!

總結(jié)

以上是生活随笔為你收集整理的python批量添加水印_用Python批量添加水印,提高工作效率!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。