【Python】教你一步批量加水印

来源:https://www.cnblogs.com/123456feng/archive/2022/04/09/16123072.html
-Advertisement-
Play Games

前言 工作的時候,尤其是自媒體工作者,必備水印添加工具以保護知識產權,網上有許多的線上/下載的水印添加工具,但他們或多或 少都存在以下問題: 線上工具需要將圖片上傳到對方伺服器,信息不安全。 很多工具不具備批量處理功能。 很多工具自定義的功能太少,如水印透明度,字體等。 操作繁瑣。 現在只要你會使用 ...


前言

工作的時候,尤其是自媒體工作者,必備水印添加工具以保護知識產權,網上有許多的線上/下載的水印添加工具,但他們或多或

少都存在以下問題:

  1. 線上工具需要將圖片上傳到對方伺服器,信息不安全。

  2. 很多工具不具備批量處理功能。

  3. 很多工具自定義的功能太少,如水印透明度,字體等。

  4. 操作繁瑣。

在這裡插入圖片描述

現在只要你會使用命令,我們就能教大家怎麼使用Python超級簡單地為圖片添加水印,而且具備以下特點:

Python學習交流Q群:903971231####
1. 支持自定義水印字體。

2. 支持自定義文本內容、顏色。

3. 支持批量處理。

4. 支持設定水印與水印之間的空間。

5. 支持設定水印字體大小。

6. 支持設定透明度。

7. 自己的代碼,安全。

 

我們需要使用的是2Dou的開源項目:

https://github.com/2Dou/watermarker

非常有用的開源項目,感謝原作者。

有兩種方法可以下載這個項目:

  1. 如果你的網路可以上github,你可以進入該頁面,點擊clone or download 然後點擊Download Zip.

  2. 如果你有下載git,可以用cmd/terminal進入你想放置的文件夾,輸入命令:

git clone https://github.com/2Dou/watermarker.git

下載解壓到你想要放置的任意一個文件夾下。路徑中最好不要帶中文名,如果你是用前兩種方法下載的,而且是windows系統用

戶,註意要把該項目的字體文件名改為英文,另外marker.py里也有一個地方需要改動,如下:

在這裡插入圖片描述

將font文件夾里的 青鳥華光簡琥珀.ttf 改為 bird.ttf, 什麼名字不重要,重點是不要用中文名,否則pillow會無法使用改文件。

註意marker.py文件里的第十行要改成相應的名字,與font文件夾下的字體文件名相對應。

剛剛我們提到了pillow這個庫,這個包的運行需要使用到這個第三方庫,它是專門用來處理圖像的,打開CMD/Terminal, 輸入以下

命令即可安裝:

pip install pillow

 

安裝完畢後,我們可以試一下!最普通的例子如下,將你所需要加水印的圖片放在該項目的input文件夾下,然後在cmd/Terminal

中進入你存放該項目的文件夾輸入以下命令:

python marker.py -f ./input/baby.jpg -m python

 

在這裡插入圖片描述

各個參數的含義如下:

-f 文件路徑:是你的圖片的路徑

-m 文本內容:是你想要打的水印的內容

參數不設置則為預設值,運行完畢後會在output文件夾下出現相應的加了水印的圖片,效果如下:

在這裡插入圖片描述

添加水印

預設水印的顏色是…屎黃色的?

但是沒關係,我們可以修改它的顏色,添加-c參數即可!(參數預設格式為 #號後加6位16進位),利用圖像工具,我們可以找到

你喜歡的顏色的值:

然後我們輸入命令:

python marker.py -f ./input/baby.jpg -m python -c #232862

 

成功了!看看效果:

在這裡插入圖片描述

恩!變好看了,但是好像水印的顏色有點深,我們可以修改一下透明度讓它變淺一點,預設的透明度為0.15,可以讓這個值變得

更小,設定opacity參數:

python marker.py -f ./input/baby.jpg -m python實用寶典 -c #232862 --opacity 0.08

 

結果如下:

在這裡插入圖片描述

其實還有其他參數可以,我們就不一一展示了,一共有這些參數:

1.-f 參數,指定打水印的文件,如果你想列印整個文件夾,則輸入該文件夾路徑即可。

2.-m 參數,指定水印內容。

3.-o 參數,指定輸出水印文件的位置,預設為output文件夾。

4.-c 參數,指定水印的顏色,預設值為shi…啊不,黃色,#8B8B1B.

5.-s 參數,指定水印與水印之間的空隙,預設值為75.

6.-a 參數,指定水印的旋轉角度,我們的例子中都是預設值30度。

7.–size參數,指定水印文本字體大小,預設值為50。

8.–opacity參數,指定透明度,預設為0.15,數值越小越透明。

接下來給大家試試批量處理功能,首先把所有圖片放置到項目的input文件夾下:

然後輸入命令里,指定文件夾即可!

python marker.py -f ./input -m python實用寶典 -c #232862 --o

 

你會看到input文件夾名後沒有/baby.jpg了,這表明將input文件夾下所有的圖片打水印。

在這裡插入圖片描述

看到 文件名 succes 則說明批處理成功!

還有一個隱藏功能!如果你想要修改字體也可以哦!還記得我們前面怎麼修複windows的中文名問題嗎?如圖,你只要將新的字

體文件放到font文件夾下,然後修改TTF_FONT變數里的字體名字,與font文件夾下的新字體名字相對應即可改成你想要的字體

了!

在這裡插入圖片描述

在這裡插入圖片描述

最後

我們的文章到此就結束啦,如果你喜歡我今天的Python教程,請持續關註我,如果對你有幫助,麻煩在下麵點一個贊,

有任何問題都可以在下方留言區留言,我都會耐心解答的!

在這裡插入圖片描述


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、前言 雖說上學期為了助眠看了一點 Java 但是散而不精,看而不敲,所以這學期正式學 Java 並沒有想想中那麼容易... 直觀感受:Java有很多和C/C不一樣的地方,Java太嚴謹了,但是相比C/C來說也更安全(不需要領著指針亂跑).... 前三次PTA題目集的小總結 總體來看,前兩次的題目 ...
  • 不斷踩坑並解決問題是每個程式員進階到資深的必要經歷並以此獲得滿足感,而不斷閱讀開源項目源碼和總結思想是每個架構師成長最佳途徑。本篇拉開SpringCloud Alibaba最新版本實戰和原理序幕,以工程實踐的簡單完整實戰示例為主線,步步深入並可為實際項目中帶來啟發 ...
  • 上個月線上生產環境有幾個介面出現異常響應,查看生產日誌後發現,如下錯誤 線上Redis客戶端使用的是SpringBoot預設的Lettuce客戶端,並且沒有指定連接池,connection reset by peer這個錯誤是當前客戶端連接在不知情的情況下被服務端斷開後產生,也就是說當前客戶端Red ...
  • Spring 簡介 spring,英文單詞為春天,表示為軟體行業帶來了春天。 2002年,首次推出了Spring框架的雛形:interface21框架。官網為:www.interface21.io但是現在進去時間略長。 Spring框架是以上面這個框架為基礎重新設計,並不斷對其進行改進豐富其內涵,在 ...
  • 為什麼要使用JWT認證?構成和原理又是什麼?怎麼還有Base64的事?我都寫了
  • * 如果一個類沒有構造方法: * A:成員全部是靜態的(Math,Arrays,Collections) * B:單例設計模式(Runtime) * C:類中有靜態方法返回該類的對象(InetAddress) * class Demo { * private Demo(){} * * public ...
  • ###一:SpingMVC:結果跳轉方式 SpringMVC: 通過SpringMVC來實現轉發和重定向-無需視圖解析器 測試前需要將視圖解析器註掉: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springfram ...
  • Java基礎常見知識&面試題總結(下) 泛型 Java 泛型瞭解麽?什麼是類型擦除?介紹一下常用的通配符? Java 泛型(generics) 是 JDK 5 中引入的一個新特性, 泛型提供了編譯時類型安全檢測機制,該機制允許程式員在編譯時檢測到非法的類型。泛型的本質是參數化類型,也就是說所操作的數 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...