当前位置 : 首页 > 文章 > 如何在PicGo中添加水印插件

如何在PicGo中添加水印插件

来源:辣条科技站Gamer发布时间: 2024-04-16 19:04:31

之前我们介绍了PicGo和免费的图床神器,现在能够愉快地进行Markdown写作。

然而,有一些爬虫网站会爬取你的文章,并且标记它们为自己的原创内容。那该怎么办呢?一个好的方法是为Markdown中上传的图片添加自己的水印。

接下来,我将介绍如何在PicGo中配置并给上传的图片添加水印。

picgo水印插件

首先,要为PicGo添加功能,当然就得搜索相应的插件。

在PicGo的插件设置中搜索“水印”,然后点击搜索结果。

很遗憾,没有搜索到任何相关插件。那么是不是PicGo没有水印插件呢?

当然不是。将搜索词换成英文"watermark",出现了两个结果。

那么我们要选择哪个呢?

别急,首先点击这两个插件的标题,会自动跳转到插件的主页。

它们的地址分别是:
https://github.com/terwer/picgo-plugin-watermark-elec

https://github.com/fhyoga/picgo-plugin-watermark

对比后,我们发现picgo-plugin-watermark-elec是从picgo-plugin-watermark fork过来的。而原始的picgo-plugin-watermark已经有三年没有更新了。

基于“最新的就是最好的”这一基本原则,我们选择使用picgo-plugin-watermark-elec。

回到PicGo中,我们点击安装,进行插件的安装。

安装需要一些时间,耐心等待。

安装完成后,进入插件的配置页面:

配置包括字体文件路径、水印文字、水印文字颜色、字体大小、水印图片路径、水印位置和最小尺寸等选项。

  1. 字体文件路径。E.g.

    /Users/fonts/Arial-Unicode-MS.ttf

    。默认只支持英文水印,中文支持需要自行导入中文字体文件。
  • 水印文字。E.g.

    hello world

  • 水印文字的颜色,支持rgb和hex格式。E.g.

    rgb(178,178,178)



    #b2b2b2

  • 字体大小,默认

    14

  • 水印图片路径。E.g.

    /Users/watermark.png

    ,优先级大于文字。

  • 位置,默认

    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"
    }
    
  • 原图最小尺寸,小于这一尺寸不添加水印。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 (

    )

    at je.handlePlugins (/Applications/PicGo.app/Contents/Resources/app.asar/node_modules/picgo/dist/index.cjs.js:1:20455)

    看起来似乎上传不成功。从错误信息判断,似乎是字体文件有问题导致的。也许是因为我的字体文件带了空格。换一个没有空格的、或者改个名字试试。

    再试一次,仍然不行……

    然后研究一下字体文件,发现其实有两种格式,一种是TTF,一种是TTC。我们换成TTF再试一下,这次成功了。

    检查一下,水印是否添加成功?

    总结

    现在我们已经成功的给PicGo加上水印了。从这个故事中,我们能学到什么呢?当然是遇到问题时的解决方法了!如果上面的尝试都不成功,我的下一步计划是把插件切换到最开始fork之前的版本再试试。

    欢迎阅读更多内容:
    www.flydean.com