当前位置: 首页 > news >正文

Echarts添加水印

如果直接说水印,很难在官方找到一些痕迹,但是换个词【纹理】就能找到了。水印就是一种特殊的纹理背景。

Echarts-backgroundColor

backgroundColor

支持使用rgb(255,255,255)rgba(255,255,255,1)#fff等方式设置为纯色,也支持设置为渐变色和纹理填充,具体见option.color

color

支持的颜色格式:

  • 使用 RGB 表示颜色,比如 'rgb(128, 128, 128)',如果想要加上 alpha 通道表示不透明度,可以使用 RGBA,比如 'rgba(128, 128, 128, 0.5)',也可以使用十六进制格式,比如 '#ccc'

  • 渐变色或者纹理填充

    // 线性渐变,前四个参数分别是 x0, y0, x2, y2, 范围从 0 - 1,相当于在图形包围盒中的百分比,如果 globalCoord 为 `true`,则该四个值是绝对的像素位置
    {type: 'linear',x: 0,y: 0,x2: 0,y2: 1,colorStops: [{offset: 0, color: 'red' // 0% 处的颜色}, {offset: 1, color: 'blue' // 100% 处的颜色}],global: false // 缺省为 false
    }
    // 径向渐变,前三个参数分别是圆心 x, y 和半径,取值同线性渐变
    {type: 'radial',x: 0.5,y: 0.5,r: 0.5,colorStops: [{offset: 0, color: 'red' // 0% 处的颜色}, {offset: 1, color: 'blue' // 100% 处的颜色}],global: false // 缺省为 false
    }
    // 纹理填充
    {image: imageDom, // 支持为 HTMLImageElement, HTMLCanvasElement,不支持路径字符串repeat: 'repeat' // 是否平铺,可以是 'repeat-x', 'repeat-y', 'no-repeat'
    }
    

水印

通过一个新的canvas绘制水印,然后在backgroundColor中添加

const waterMarkText = 'YJFicon'; // 水印
const canvas = document.createElement('canvas'); // 绘制水印的canvas
const ctx = canvas.getContext('2d');
canvas.width = canvas.height = 100; // canvas大小 - 控制水印间距
ctx.textAlign = 'center'; // 文字水平对齐
ctx.textBaseline = 'middle'; // 文字对齐方式
ctx.globalAlpha = 0.08; // 透明度
ctx.font = '20px Microsoft Yahei'; // 文字格式 style size family
ctx.translate(50, 50); // 偏移
ctx.rotate(-Math.PI / 4); // 旋转
ctx.fillText(waterMarkText, 0, 0); // 绘制水印option = {//...backgroundColor: {//在背景属性中添加// type: 'pattern',image: canvas,repeat: 'repeat'}...
}

image.png

如果只想在 toolbox.saveAsImage 下载的图片才展示水印,toolbox.feature.saveAsImage 支持配置backgroundColor,将其设置为水印【纹理】即可

option = {//...toolbox: {show: true,feature: {...saveAsImage: 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 第八季完美童模全球人气冠军【夏沛然】荣耀加冕 见证星芒风采!
  • 【运维】Linux如何解压.rar文件
  • 微前端架构入门
  • uniapp left right 的左右模态框
  • webrtc ns 降噪之粉红噪声参数推导
  • 微软Edge浏览器
  • 2024数据泄露事件增涨迅猛,我们决不能坐以待毙!
  • day37-https实战
  • 【python数据分析11】——Pandas统计分析(分组聚合进行组内计算)
  • Nuxt3【路由中间件】middleware
  • 2024年新SCI顶刊算法信息获取优化算法IAO优化Transformer-GRU模型的多变量时间序列预测
  • 组合模式 详解
  • iPhone如何全选删除照片:一步到位的清理指南
  • 看书标记【数据科学:R语言实战 8】
  • VS Code安装与vue项目新建
  • (三)从jvm层面了解线程的启动和停止
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Linux中的硬链接与软链接
  • spring学习第二天
  • web标准化(下)
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 记一次和乔布斯合作最难忘的经历
  • 日剧·日综资源集合(建议收藏)
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 我建了一个叫Hello World的项目
  • 阿里云移动端播放器高级功能介绍
  • 扩展资源服务器解决oauth2 性能瓶颈
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ## 基础知识
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (23)Linux的软硬连接
  • (7)svelte 教程: Props(属性)
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (web自动化测试+python)1
  • (差分)胡桃爱原石
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (回溯) LeetCode 131. 分割回文串
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (三)SvelteKit教程:layout 文件
  • (三)模仿学习-Action数据的模仿
  • (转)nsfocus-绿盟科技笔试题目
  • (转)Scala的“=”符号简介
  • (转)编辑寄语:因为爱心,所以美丽
  • ... 是什么 ?... 有什么用处?
  • .NET 8 跨平台高性能边缘采集网关
  • .Net CF下精确的计时器
  • .NET 给NuGet包添加Readme
  • .NET 设计一套高性能的弱事件机制
  • .net反编译的九款神器
  • .NET中统一的存储过程调用方法(收藏)
  • @RequestMapping处理请求异常