給picgo上傳的圖片加個水印

之前給大家介紹了picgo和免費的圖牀神器。我們本可以開開心心的進行markdown寫作了。

但是總是會有那麼一些爬蟲網站過來爬你的文章,還把你的文章標明是他們的原著。咋辦呢?這裏有一個好的辦法就是把markdown中上傳的圖片加上自己的水印不就行了。

說幹就幹。接下來我會介紹如何在picgo中進行配置,給上傳的圖片加上水印。

picgo水印插件

當然要給picgo添加功能,第一首選就是去找找有沒有對應的插件。

我們在picgo的插件設置中搜索:水印,然後點擊。

很遺憾,你什麼都找不到。那麼是不是picgo沒有水印插件呢?

當然不是。我們換個英文來搜索一下:watermark。 好了,一下出來了兩個。

image-20240410135940772

那麼我們到底應該裝哪個呢?

別急,我們先點擊兩個插件的標題,會自動跳轉到插件的主頁。

他們的地址分別是: https://github.com/terwer/picgo-plugin-watermark-elechttps://github.com/fhyoga/picgo-plugin-watermark

經過對比,我們可以看到picgo-plugin-watermark-elec是從picgo-plugin-watermark fork過來的。原始的picgo-plugin-watermark已經有3年沒有更新了。

基於:最新的就是最好的這一基本原則。我們就選擇picgo-plugin-watermark-elec來使用吧。

回到PicGo中,我們點擊安裝,進行插件的安裝。

安裝需要點時間,我們多等一等。

安裝好之後,我們進入他的配置頁面:

image-20240410151428537

可以看到有字體文件路徑,水印文字,水印文字顏色,字體大小,水印圖片路徑,水印位置和最小尺寸這幾個選項需要填寫。

  1. 字體文件路徑。E.g./Users/fonts/Arial-Unicode-MS.ttf

​ 默認只支持英文水印,中文支持需要自行導入中文字體文件。

  1. 水印文字。E.g.hello world

  2. 水印文字的顏色,支持rgb和hex格式。E.g.rgb(178,178,178)#b2b2b2

  3. 字體大小,默認14

  4. 水印圖片路徑。E.g./Users/watermark.png,優先級大於文字

  5. 位置,默認rb

    export enum PositionType {
      lt = "left-top",
      ct = "center-top",
      rt = "right-top",
      lm = "left-middle",
      cm = "center-middle",
      rm = "right-middle",
      lb = "left-bottom",
      cb = "center-bottom",
      rb = "right-bottom"
    }
    
  6. 原圖最小尺寸,小於這一尺寸不添加水印。E.g.200*200。

​ 高度或寬度任何一個小於限制,都會觸發。

按照你自己的習慣,我們可以設置好這些屬性。

字體的話,最好設置一箇中文字體,這樣我們可以添加中文水印。

如果你是mac電腦,那麼字體文件的路徑在:/System/Library/Fonts/下面。

這裏我選擇的是這個字體: /System/Library/Fonts/Hiragino Sans GB.ttc

有人說,那麼字體顏色在哪裏選啊?

給大家推薦一個官方的顏色選擇網站:

https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_colors/Color_picker_tool

等等,就在我配置好之後,再次上傳圖片的時候,發現了一個了不得的結論:圖片上傳居然失敗了.....

沒辦法只好去檢查一下日誌:

[PicGo INFO] beforeTransformPlugins: watermark running [PicGo INFO] [PicGo Server] get the request {"list":["/Users/test/Library/Application Support/typora-user-images/image-20240410252432593.png"]} [PicGo INFO] [PicGo Server] upload files in list [PicGo INFO] Before transform [PicGo INFO] beforeTransformPlugins: watermark running [PicGo INFO] [PicGo Server] upload result

------Error Stack Begin------ Error: Unsupported OpenType signature ttcf at parseBuffer (/Users/test/Library/Application Support/picgo/node_modules/opentype.js/src/opentype.js:204:15) at Object.loadSync (/Users/test/Library/Application Support/picgo/node_modules/opentype.js/src/opentype.js:380:12) at Function.Text2svg.loadSync (/Users/test/Library/Application Support/picgo/node_modules/text2svg/index.js:61:23) at new Text2svg (/Users/test/Library/Application Support/picgo/node_modules/text2svg/index.js:18:23) at Object.exports.generate (/Users/test/Library/Application Support/picgo/node_modules/logo.svg/lib/index.js:25:16) at getSvg (/Users/test/Library/Application Support/picgo/node_modules/picgo-plugin-watermark-elec/lib/text2svg.js:34:22) at Object.handle (/Users/test/Library/Application Support/picgo/node_modules/picgo-plugin-watermark-elec/lib/index.js:34:49) at /Applications/PicGo.app/Contents/Resources/app.asar/node_modules/picgo/dist/index.cjs.js:1:20521 at Array.map (<anonymous>) at je.handlePlugins (/Applications/PicGo.app/Contents/Resources/app.asar/node_modules/picgo/dist/index.cjs.js:1:20455)

好像是沒有上傳成功.

從錯誤看來是ttcf也就是我們的字體文件有問題。

直覺是因爲我的字體文件帶了空格。換一個沒有空格的,或者把字體改個名字。

再試一次,還是不行.....

然後研究一下了字體文件。發現其實是有兩種格式的,一種是TTF,一種是TTC。

我們換成TTF再試一下,這次成功啦。

image-20240410152432593

看看水印是不是出來了?

總結

好了,現在我們已經成功的給Picgo加上水印了。那麼朋友們,大家能從這個故事中學到什麼呢?

當然是遇到問題的解決方法啦!事實上,如果上面的嘗試都不成功的話,我的下一步計劃是把插件切換到最開始fork之前的版本再試試。

點我查看更多精彩內容:www.flydean.com

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章