0.0.12 • Published 2 years ago

@tinyfe/watermark v0.0.12

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

@tinyfe/watermark

水印 APIs, 支持自动生成。外部传入水印,并实时监听补全被删除的水印。

Usage

基础用法(so easy)

import WaterMark from '@tinyfe/watermark';

new WaterMark({
  container: document.querySelector('.watermark'),
  text: '法网恢恢疏而不漏,POI',
});

npm.io

进阶用法

new WaterMark({
  container: document.querySelector('.watermark'),
  text: '法网恢恢疏而不漏,POI',
  fontType: 'Microsoft YaHei',
  color: 'red',
  fontSize: 24,
  alpha: 0.2,
  image: '',
  repeat: true,
  style: {
    width: 1000,
    height: 800,
    top: '30px',
  },
});

new WaterMark({
  monitor: false,
  container: document.querySelector('.watermark1'),
  text: '还在想抄袭,搞屁哦',
  fontSize: 24,
  color: 'red',
  alpha: 0.5,
  image: '',
  repeat: true,
  style: {
    width: 1000,
    height: 800,
    top: '30px',
  },
});
new WaterMark({
  monitor: false,
  image: 'https://avatars.githubusercontent.com/u/20939839?v=4',
  container: document.querySelector('.watermark2'),
  fontSize: 24,
  color: 'red',
  alpha: 0.5,
  style: {
    width: 1000,
    height: 800,
    top: '30px',
  },
});

npm.io

参数

Options

Key类型默认值描述
container(必选参数)string | HTMLElementnull挂载节点。 注意, 传入值为 string 时, 为了保证唯一性, 默认是以 id 的方式传入
monitorbooleantruemonitor 是否监控, true: 不可删除水印; false: 可删水印
observerMutationCallbackMutationObserver Callback
observerOptionsobjectObserverOptionsMutationObserver Options
encoderOptionsnumber0.92在指定图片格式为 image/jpegimage/webp的情况下可以从 01 的区间内选择图片的质量。如果超出取值范围, 将会使用默认值 0.92。其他参数会被忽略。
styleobject{}初始化 canvas 样式

水印配置

Key类型默认值描述
prefixstring''水印前缀,只在 text 模式下使用
text(必选参数)string''image为空值时使用 text 模式
fontstringMicrosoft YaHei字体相关样式
fontSizenumber24
imagestring''水印图片
colorstring#848FA7水印颜色
alphanumber0.2水印透明度
rotatenumber340deg,水印旋转角度,
scalenumber1缩放
repeatbooleantrue水印是够在xy 轴上重复
rowsnumber5重复行数
colsnumber5重复列数
startXnumber20px, 重复水印x轴起点
startYnumber20px, 重复水印y轴起点
xGapnumber200px, 重复水印x轴偏移
yGapnumber100px, 重复水印y轴偏移

ObserverOptions

Key类型默认值描述
childListbooleantrue观察目标子节点的变化, 是否有添加或者删除
attributesbooleantrue观察属性变动
subtreebooleantrue观察后代节点
attributeFilterstring[], undefined['style']特性名称数组, 只观察选定的特性
characterDataboolean是否观察 node.data(文本内容)
attributeOldValueboolean如果为 true, 则将特性的旧值和新值都传递给回调(参见下文), 否则只传新值(需要 attributes 选项)
characterDataOldValueboolean如果为 true, 则将 node.data 的旧值和新值都传递给回调(参见下文), 否则只传新值(需要 characterData 选项)

APIs 设计

自动水印实现

通过创建 canvas 绘制水印, 并转换成 base64, 然后添加到外部传入的 dom 上, 并通过 MutationObserver 提供监视用户对 DOM 树所做更改的能力来自动补全删除的水印。(Note: MutationObserver 兼容性)

外部水印

通过外部传入的 image 来实现自动补全删除的水印。

0.0.11

2 years ago

0.0.12

2 years ago

0.0.10

2 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago