写点什么

给 picgo 上传的图片加个水印

作者:程序那些事
  • 2024-04-16
    广东
  • 本文字数:2157 字

    阅读完需:约 7 分钟

给picgo上传的图片加个水印

之前给大家介绍了 picgo 和免费的图床神器。我们本可以开开心心的进行 markdown 写作了。


但是总是会有那么一些爬虫网站过来爬你的文章,还把你的文章标明是他们的原著。咋办呢?这里有一个好的办法就是把 markdown 中上传的图片加上自己的水印不就行了。


说干就干。接下来我会介绍如何在 picgo 中进行配置,给上传的图片加上水印。

picgo 水印插件

当然要给 picgo 添加功能,第一首选就是去找找有没有对应的插件。


我们在 picgo 的插件设置中搜索:水印,然后点击。


很遗憾,你什么都找不到。那么是不是 picgo 没有水印插件呢?


当然不是。我们换个英文来搜索一下:watermark。 好了,一下出来了两个。



那么我们到底应该装哪个呢?


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


他们的地址分别是: 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 中,我们点击安装,进行插件的安装。


安装需要点时间,我们多等一等。


安装好之后,我们进入他的配置页面:



可以看到有字体文件路径,水印文字,水印文字颜色,字体大小,水印图片路径,水印位置和最小尺寸这几个选项需要填写。


  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"   }
复制代码


  1. 原图最小尺寸,小于这一尺寸不添加水印。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 ttcfat 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:20521at 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 再试一下,这次成功啦。



看看水印是不是出来了?

总结

好了,现在我们已经成功的给 Picgo 加上水印了。那么朋友们,大家能从这个故事中学到什么呢?


当然是遇到问题的解决方法啦!事实上,如果上面的尝试都不成功的话,我的下一步计划是把插件切换到最开始 fork 之前的版本再试试。


点我查看更多精彩内容:www.flydean.com

用户头像

关注公众号:程序那些事,更多精彩等着你! 2020-06-07 加入

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧,尽在公众号:程序那些事!

评论

发布
暂无评论
给picgo上传的图片加个水印_人工智能_程序那些事_InfoQ写作社区