close

【PIL】Python自動將圖片加上浮水印及LOGO

image https://panel.pixnet.cc/#/edit-article/49385266

一、前言

常常遇到要將一堆圖片加上浮水印或LOGO嗎?

去外面網站上傳有限制,而且還又收費,

重點是還要調大小、位置及透明度等等問題,

其實用Python就可以輕易達到了,

而且還免費自動上浮水印及logo,簡單程式碼帶大家看到好。

 

進入基本教學前,不要忘了訂閱按讚分享唷!

部落格教學網站:
https://pixnashpython.pixnet.net/blog
想要即時訂閱最新文章:
https://forms.gle/MdXmiF2HgHhNChL46
訂閱Telegram來接收最新資訊:
https://t.me/joinchat/VUUuDt67Uq5l6CIQ

 

 

二、免費為圖片自動加上浮水印或LOGO


本次的概念是這樣的,我有一張ASHLIFE.png的主圖,還有一張logo.png的浮水印,

要自動加在右下角,而且還要調整透明度及縮放比例,最終變成after.png那樣,如下顯示。

如果要打開小畫家還是等等編輯裝置耗時,又不能做迴圈大量調整,這時候就可以用PIL套件。

(完整程式碼教學在最下面)

 

# NASHLIFE.png

NASHLIFE https://panel.pixnet.cc/#/edit-article/49385266

 

# logo.png

tele_nashlife https://panel.pixnet.cc/#/edit-article/49385266

 

# after.png

image https://panel.pixnet.cc/#/edit-article/49385266

 

 

三、Python加上浮水印


Python免費自動加上浮水印及logo,這邊把整個程式碼包成一個def,這樣之後如果有大量圖片就可以用迴圈大量處理。

 

from PIL import Image, ImageDraw
  
def add_logo(image, logo, alpha=150, size=6): # image 圖片 logo你的logo
  rgba_image = image.convert('RGBA')
  rgba_logo = logo.convert('RGBA')
  
  image_x, image_y = rgba_image.size
  logo_x, logo_y = rgba_logo.size
  
  # 縮放圖片
  logo_size = max(image_x / (size * logo_x), image_y / (size * logo_x))
  new_logo_size = (int(logo_x * logo_size), int(logo_y * logo_size))
  rgba_logo = rgba_logo.resize(new_logo_size, resample=Image.ANTIALIAS)
  
  # 透明度
  rgba_logo.putalpha(alpha)
  
  logo_x, logo_y = rgba_logo.size
  
  # 水印位置
  margin = 15
  rgba_image.paste(rgba_logo, (image_x - logo_x - margin, image_y - logo_y - margin)) # 右下角
  
  return rgba_image
  
image = Image.open("NASHLIFE.png")
#im_before.show()
  
logo = Image.open("logo.png")
im_after = add_logo(image, logo, 150, 6)
im_after.show()

rgba_image = image.convert('RGBA') 轉成RGBA含有透明度的

image_x, image_y = rgba_image.size 取得圖片的 x y大小

logo_size = max(image_x / (size * logo_x), image_y / (size * logo_x)) 取得相對主圖的比例

rgba_logo.putalpha(alpha) 設置透明度

rgba_image.paste 在主圖貼上其他圖片(這邊是logo) 裡面放其他圖片及主圖的絕對位置

im_after.show() 直接顯示,不然也可以save存出

 

 

四、後記


Python也能變成修圖神器!

 

部落格教學網站:
https://pixnashpython.pixnet.net/blog
想要即時訂閱最新文章:
https://forms.gle/MdXmiF2HgHhNChL46
訂閱Telegram來接收最新資訊:
https://t.me/joinchat/VUUuDt67Uq5l6CIQ

arrow
arrow

    恩哥Python 發表在 痞客邦 留言(0) 人氣()