给picgo上传的图片加个水印

news2025/1/12 5:01:09

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

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

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

picgo水印插件

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

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

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

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

image-20240410135940772

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

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

他们的地址分别是: 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已经有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 ()
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之前的版本再试试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1589188.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【复现】CVE-2024-29269 某国外路由器RCE漏洞_72

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 在 Telesquare TLR-2005Ksh 1.0.0 和 1.1.4 中发现的一个问题允许攻击者通过 Cmd 参数运行任意系统命令。 二 .漏洞影响 通过提交…

C语言---顺序表(二)

文章目录 前言1.准备工作2.代码的实现2.1.顺序表的创建、销毁和打印2.2.顺序表的扩容、头插\删、尾插\删2.2.1.扩容2.2.2.尾插2.2.3.头插2.2.3.尾删2.2.4.头删 2.3.指定位置之前插入/删除数据/查找数据2.3.1.指定位置之前插入数据2.3.2.指定位置之前删除数据2.3.3.查找特定数据…

vue3 依赖-组件tablepage-vue3说明文档,列表页快速开发,使用思路及范例(Ⅰ)配置项文档

vue3 依赖-组件tablepage-vue3说明文档,列表页快速开发,使用思路及范例(Ⅰ)配置项文档 vue3 依赖-组件tablepage-vue3说明文档,列表页快速开发,使用思路及范例(Ⅱ)搜索及数据获取配…

Linux-select剖析

一、select函数 select函数是IO多路复用的函数,它主要的功能是用来等文件描述符中的事件是否就绪,select可以使我们在同时等待多个文件缓冲区 ,减少IO等待的时间,能够提高进程的IO效率。 select()函数允许程序监视多个文件描述符…

旋转编码器原理(超简单)

波形图 A相和B相的状态变化与旋转方向有关。当顺时针旋转时,A相引脚会先变化,然后是B相引脚。而逆时针旋转时,B相引脚会先变化,然后是A相引脚 这是两个引脚的实际波形采样,越密集的旋转的越快 可以发现特点&#xff0…

Redis从入门到精通(十四)Redis分布式缓存(二)Redis哨兵集群的搭建和原理分析

文章目录 前言5.3 Redis哨兵5.3.1 哨兵原理5.3.1.1 集群的结构和作用5.3.1.2 集群监控原理5.3.1.3 集群故障恢复原理 5.3.2 搭建哨兵集群5.3.3 RedisTemplate5.3.3.1 搭建测试项目5.3.3.2 场景测试 前言 Redis分布式缓存系列文章: Redis从入门到精通(十三)Redis分…

Git分布式版本控制系统——Git常用命令(二)

五、Git常用命令————分支操作 同一个仓库可以有多个分支,各个分支相互独立,互不干扰 分支的相关命令,具体如下: git branch 查看分支 git branch [name] 创建分支&#x…

面试题:重写equals(),为什么还要重写hashcode()

认识equals(): Object类中的equals; public boolean equals(Object obj) {return (this obj);}当我们没有重写equals(),我们是调用父类object中的方法,比较的是对象的内存地址 重写equals后, public class Student…

蓝桥杯嵌入式(G431)备赛笔记——DMA+UART

目录 CubeMX配置: 代码配置: DMA通道接收: DMA通道发送: 注意: 主函数中记得开启串口接收回调函数: 加了DMA的UART接收通道和一般的区别: 加了DMA的UART发送和一般的区别: CubeMX配置&…

Day23_学点儿Java_多态复习

1 做错的选择题 Java中的多态性是通过以下哪个机制实现的?() A. 方法重载 B. 方法覆盖 C. 抽象类 D. 接口2 多态复习 2.1 学点儿Java_Day7_继承、重载、重写、多态、抽象类 2.2 面向对象四大基本特征 封装、抽象、继承、多态 封装 面向…

【翻译】再见, Clean Code!

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 【翻译】再见, Clean Code!正文那是一个深夜次日早晨这只是一个阶段 【翻译】再见…

CTF-SHOW SSRF

web351 存在一个flag.php页面,访问会返回不是本地用户的消息,那肯定是要让我们以本地用户去访问127.0.0.1/flag.php web352 代码中先判断是否为HTTP或https协议,之后判断我们传入的url中是否含有localhost和127.0.0,如果没有则…

JAVA集合ArrayList

目录 ArrayList概述 add(element) 用法 add(index, element)用法 remove(element)用法 remove(index)用法 get(index)用法 set(index,element) 练习 test1 定义一个集合,添加字符串,并进行遍历&…

【JavaWeb】Day42.MySQL概述——多表查询

介绍 多表查询:查询时从多张表中获取所需数据 单表查询的SQL语句:select 字段列表 from 表名; 如果要执行多表查询,只需要使用逗号分隔多张表即可,如: select 字段列表 from 表1, 表2; 例如:查询…

解决mac本git安装后找不到命令的问题

不熟悉mac配置,折腾了半天,记录一下。 1.问题描述2.解决方法 1.问题描述 从https://sourceforge.net/projects/git-osx-installer/files/下载的git安装包: 安装时提示: 这里的解决办法是按住control键再打开文件安装。 安装完…

数据分析案例(一):地区收入的PCA主成分分析

练习1 地区收入的PCA主成分分析 0.变量说明 1.导包操作 核心思路:导入基础数据操作库包,PCA、k-means 库包,数据可视化库包 import pandas as pd import numpy as np from sklearn.decomposition import PCA from sklearn.preprocessing i…

补体系统研究解决方案BioPorto补体抗体

靶点研究新热点:补体系统 21世纪以来,人们对补体的认识从基于血液的抗菌素系统逐步转变为免疫和组织稳态的全局调节器。近年,对补体激活机制、结构、功能方面的研究更是取得了显著的进展,令补体系统研究跻身热门研究主题之一。 补…

基于SSM新疆旅游管理系统的设计与实现(内附设计LW + PPT+ 源码下载)

摘 要 随着经济的飞速发展人们对于旅游的热衷度也日益提升,新疆因特殊的地理优势具备了天然的旅游资源,天山山脉将新疆的地理区域划分为了南疆和北疆,北疆因气候湿润且河流草场较多造就了得天独厚的自然旅游资源,南疆沙漠广布且…

图像JPEG压缩(附python代码)

JPEG压缩是一种有损压缩技术,常用于数字图像。它通过减少图像文件大小来实现压缩,但会造成一定程度的图像质量损失。 目录 一、JPEG压缩1.1 JPEG压缩原理1.2 JPEG压缩优点1.3 JPEG压缩缺点 二、图像退化中加入JPEG压缩2.1 优势2.1.1 更逼真的模拟2.1.2 提…

OceanMind海睿思助力企业“数据入表”经济利益流入与生命周期管理

通过多年信息系统的建设与应用,企业积累了大量的数据。同时随着时间的推进,数据规模正以加速度快速增长。从国家到企业,都越来越关注所拥有的数据资源及其蕴含的深厚价值。很多企业已经逐渐认知到数据是重要的战略资源,数据资产化…