[TIL#6] Python 自學 day6 PIL浮水印、圖片大小變更

大家在上傳照片或者寫部落格的時候,有時候想將自己心愛的照片,加上浮水印(watermark),避免有人盜用,又或者是有時候照片太大,解析度過高,或者當AI訓練資料時,想要圖片大小統一!!!
瓦特歐今天就來介紹怎麼為圖片增加浮水印以及改變圖片大小,我們使用的Library,跟[TIL#5] Python 自學 day5 執行檔更換icon是一樣的,就是PIL,那讓我們進入今天的正題~

圖片大小變更,我們以富士山作為範例:

富士山原圖大小,1920×1271

程式碼:

解說:
先Import Image,再用filename當作照片路徑,
使用Image.open去將圖片讀進img變數中,
img.size可以拿到圖片的長寬,所以先印出原圖大小,為1920×1271,
使用img.resize去將原先的圖縮小一半,並且放入img2中!
再使用xxx.size印出一次img2的長寬,發現圖片大小,為960×635!
img2.save(新的圖片路徑與名稱)
PS:各位朋友們跟者試一次就會發現照片大小改變,並且用去瀏覽照片,就會發現照片變小囉!

浮水印(watermark),一樣用富士山當作範例,請看效果圖:

在圖片中間增加,”瓦特歐宅在家圖片,版權瓦特歐所有!”的浮水印

程式碼(如果不清楚,請將滑鼠移到code上,會自動放大!感謝各位):

解說:
Import Image,ImageDraw,ImageFont
用filename當作照片路徑,
使用Image.open去將圖片讀進img變數中,
使用ImageDraw.Draw(img),將圖片先畫出來當作背景,放在Drawing變數中,
使用ImageFont.truetype設定浮水印字型、字體大小,可以使用的格式有ttfotf請參考連結至維基百科,ttf和otf都是規範的字體格式,大家可去goole Noto Fonts下載喜歡的字體,瓦特歐這邊使用的字體是,Traditional Chinese的Noto Sans CJK TC,如下圖去搜尋。

再來設定X和Y為浮水印的位置,我是設定在圖片大約中間的位置,大家可以自己做調整!使用Drawing.text()將字體畫在原本的img(Drawing)上,最後使用img.save(新的圖片路徑與名稱),就完成囉。

感謝收看~這就是今天的python浮水印與圖片大小變更的分享

瓦特歐Python介紹系列:
[TIL#1] Python 自學 day1 Anaconda
[TIL#2] Python 自學 day2 變數
[TIL#3] Python 自學 day3 流程控制
[TIL#4] Python 自學 day4 製作執行檔
[TIL#5] Python 自學 day5 執行檔更換icon
[TIL#6] Python 自學 day6 PIL浮水印、圖片大小變更
[TIL#7] Python 自學 day7 大量圖片Resize 處理 懶人包
[TIL#8] Python 自學 day8 GUI製作- 使用Tkinter Grid管理器
[TIL#9] Python 自學 day9 GUI製作 放入圖片 grid 版本
[TIL#10] Python 自學 day10 創造圖片的拼貼
[TIL#11] Python 自學 day11 matplotlib 統計圖、長條圖、圓餅圖、散佈圖



Leave a Comment