顯示具有 Watermark 標籤的文章。 顯示所有文章
顯示具有 Watermark 標籤的文章。 顯示所有文章

2014年6月8日 星期日

Visible Watermark

這次作業是要自製浮水印,依然使用 python 來實作。

前言

這個好像也沒什麼演算法或什麼圖可以貼......但還是得說說是怎麼實作的。

方法

  1. 輸入圖片
  2. 轉換成 RGBA 格式
  3. 圖片剪貼
  4. 輸出圖片
其實方法很簡單,就是把原圖片和浮水印圖片都轉換成 RGBA 格式,然後藉由 Alpha 的不同來區隔。

layer = Image.new('RGBA', im.size, (0,0,0,0))
ratio = min(float(im.size[0]) / mark.size[0], float(im.size[1]) / mark.size[1])
width = int(mark.size[0] * ratio)
height = int(mark.size[1] * ratio)
layer.paste(mark, ((im.size[0] - width) / 2, (im.size[1] - height) / 2))

上面這段程式碼就是在製作 mask,完成以後將其與原圖片合起來就可以了。

結果

現在以 lena 為基準,肌肉小童當浮水印。

lena

肌肉小童


製作後如下圖:
0.5 opacity 的浮水印

感想

好實用喔,覺得開心!