由于网上找到的都是借用第三方云处理添加水印,但是我不太想用,所以自己开发了一个插件

Hexo 图片添加水印Github地址

目前插件可以直接在 hexo 官网上搜索到

下面内容都是在 Github 上复制过来的,我的正式版博客目前挂载在我的 Github 仓库 blog

一款用于 Hexo 静态博客网站生成时对图片添加水印。

不对原图产生任何影响,在网站静态页构建过程中将原图读取,输出添加了水印的图片。

在构建的静态网站中不会存在原图,只存在水印图片。

原始文章图片

水印图片

一定要阅读最后的提示事项,包含现有版本的支持情况和即将添加的功能

使用 npm 安装插件

npm install hexo-images-watermark

在站点配置文件 _config.yml 中进行如下配置:

watermark:
enable: true
textEnable: true
rotate: -45
gravity: centre

hexo generate 运行时会自动为你的 _post 目录下的图片添加水印,新的图片将会放到 public 目录中对应的位置。

必备配置参数

enable

默认值:无

说明true 将会执行图片添加水印,false 将会不执行添加

textEnable

默认值:false

说明:是否使用文本来添加水印(❌警告:目前不支持文本和图片同时添加水印)

imageEnable

默认值:false

说明:是否使用图片来添加水印(❌警告:目前不支持文本和图片同时添加水印)

其他参数

text

默认值:使用配置文件中的url,一旦url不存在直接显示作者名字(SpiritLing)

说明:当你使用的文字过长时,一旦转为图片后大于待加水印的图片尺寸,则会出现错误。

fontPath

默认值:undefined,使用 text-to-svg 自带字体

说明:自己加载需要的字体,支持单个字体文件,不区分中英文;如果纯中文,请只加载中文字体,例:需要加载 source/static/font/custom.ttf 字体直接将其写入到配置文件中即可

color

默认值:rgb(169,169,167)

说明:颜色可以使用 rgb,rgba,#xxxxxx以及red名字式的。⚠️只对text有效

gravity

默认值:southeast

说明:设置水印位置处于什么方向,以 上北下南左东右西 来确定

参数可用值:

类型 说明 备注
centre 中央 图片正中间
north 上方中间
west 左边中间
south 下边中间
east 西 右边中间
northwest 东北 左上角
southwest 东南 左下角
southeast 西南 右下角
northeast 西北 右上角

fontSize

默认值:18

说明:文本字体大小,⚠️只对text有效

watermarkImage

默认值:watermark.png

说明:水印图片,放置在source文件根路径的图片名称;⚠️大小不要超过任何一张文章中的图片,否则会出错,可以搭配缩放进行使用

width

默认值:50

说明:对图片进行缩放。⚠️只对image有效

height

默认值:50

说明:对图片进行缩放。⚠️只对image有效

rotate

默认值:0

说明:旋转角度,如45代表逆时针45度,-45代表顺时针45度

background

默认值:transparent

说明:配合text和rotate使用,指的是文字转成的图片一旦旋转会出现多余空白,设置这些地方的颜色,一般透明色即可

使用注意事项⚠️⚠️⚠️

  1. 文字不要过长过大,水印图片不要过大(太大可以使用缩放,⚠️但是缩放是全局性的),否则都会出现错误,终止生成静态页面
  2. 暂不支持图片和文字共同添加
  3. 目前只支持 *.jpg,*.jpeg*.png 两种格式图片,并且只支持source/_posts文件夹下的图片,也就是文章本地图片;同时也不支持远程图片
  4. 水印图片也不支持远程和非soucre根路径下的文件,也是只支持 *.jpg,*.jpeg*.png 两种格式图片
  5. 不支持循环满图添加水印
  6. 请使用 1.1.x 以上版本, 1.0.x 是进行Hexo api相关测试时使用的,版本杂乱无章,使用 1.0.x 版本出现任何问题,概不理会

TODO LIST

  • [x] 文字水印

    • [x] 自定义文字,颜色,大小
    • [X] 自定义字体 - 2019-12-24 Done
    • [ ] 支持循环添加
    • [ ] 超限处理
  • [x] 图片水印
    • [X] 自定义水印图片
    • [ ] 远程水印图片
    • [ ] 支持循环添加
    • [ ] 超限处理
  • [x] 位置
    • [x] 固定位置:九个方位
    • [ ] 自定义 top,left
  • [x] 旋转
  • [x] 缩放(仅限图片)
  • [ ] 其他格式支持

Hexo 文章图片添加水印,不用云处理的更多相关文章

  1. 神奇的canvas——巧用 canvas 为图片添加水印

    代码地址如下:http://www.demodashi.com/demo/11637.html 很久之前写过一篇关于 canvas 的文章,是通过 canvas 来实现一个绚丽的动画效果,不管看过没看 ...

  2. Python Windows 快捷键自动给剪贴板(复制)图片添加水印

    编写一个能在windows上使用的按下快捷键自动给剪贴板(复制)的图片添加水印的小工具.plyer.PIL.pyinstaller.pynput.win32clipboard库.记录自己踩过的坑,部分 ...

  3. Android 图片添加水印图片或者文字

    给图片添加水印的基本思路都是载入原图,添加文字或者载入水印图片,保存图片这三个部分 添加水印图片: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...

  4. java实现给图片添加水印

    package michael.io.image; import java.awt.AlphaComposite; import java.awt.Graphics2D; import java.aw ...

  5. java.imageIo给图片添加水印

    最近项目在做一个商城项目, 项目上的图片要添加水印①,添加图片水印;②:添加文字水印; 一下提供下个方法,希望大家可以用得着: package com.blogs.image; import java ...

  6. php解决微信文章图片防盗链

    解决微信文章图片防盗链 function actionWechatImg() { header('Content-type: image/jpg'); $url = $_GET['url']; $re ...

  7. Python爬虫入门教程 26-100 知乎文章图片爬取器之二

    1. 知乎文章图片爬取器之二博客背景 昨天写了知乎文章图片爬取器的一部分代码,针对知乎问题的答案json进行了数据抓取,博客中出现了部分写死的内容,今天把那部分信息调整完毕,并且将图片下载完善到代码中 ...

  8. Python爬虫入门教程 25-100 知乎文章图片爬取器之一

    1. 知乎文章图片写在前面 今天开始尝试爬取一下知乎,看一下这个网站都有什么好玩的内容可以爬取到,可能断断续续会写几篇文章,今天首先爬取最简单的,单一文章的所有回答,爬取这个没有什么难度. 找到我们要 ...

  9. jQuery效果之封装一个文章图片弹出放大效果

    首先先搭写一个基本的格式: $.fn.popImg = function() { //your code goes here } 然后用自调用匿名函数包裹你的代码,将系统变量以变量形式传递到插件内部, ...

随机推荐

  1. C语言实现linux之who功能

    /* who_test.c */ #include<stdio.h> #include<string.h> #include<getopt.h> #include& ...

  2. SpringBoot与MyBatis整合案例

    1.导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  3. vue-waterfall2 实现瀑布流,及总结的问题

    1.安装 npm install vue-waterfall2@1.8.20 --save    (提示:一定要安装1.8.20,最新版会有一部分问题) 2.打开main.js文件 import wa ...

  4. 停止IIS服务

    1 第一步 停止 World Wide Web Publishing Service     这个是W3C服务 2 第二部 停止 IIS Admin Service  这个IIS元数据管理服务

  5. html5 audio标签切换播放音乐的方法

    html5 audio标签切换播放音乐的方法<pre><audio id="music1" preload loop="loop">&l ...

  6. AKKA Actor创建

    Actor 类定义 Actor 类需要继承AbstractActor类 实现createReceive方法,绑定各类actor收到不同类型消息对应处理不同业务逻辑 默认提供了ReceiveBuilde ...

  7. C#实现ActiveMQ消息队列

    本文使用C#实现ActiveMQ消息队列功能. 一.首先需要导入两个包,分别是:Apache.NMS 和 Apache.NMS.ActiveMQ 二.创建Winform程序实现生产者功能. 三.Pro ...

  8. [原创]K8Cscan4.0之Base64/HEX密码批量加密解密插件以及源码

    前言 今天抽空更新了Cscan,新增对C#编译的EXE动态调用,新增对PowerShell脚本动态调用(无论是否安装PowerShell) 增加一个字符串列表str.txt,用于存放任意字符串,比如帐 ...

  9. golang基础语法

    golang语言的常量定义: const  filename="abc.txt"; const filename String="abc.txt" golang ...

  10. switch/case/default中的雷区

    switch的语法如下: switch(表达式){ case常量表达式1: 语句1;break; case常量表达式2: 语句2;break; - case常量表达式n: 语句n;break; def ...