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

uniapp app端水印组件封装 一次引入版

直接上代码

<template><view><canvas canvas-id="myCanvas"style="width: 100vw; height: 100vh;opacity: 0;position: fixed;top: -1000px;"></canvas></view>
</template><script>export default {name: "watermark",data() {return {screenWidth: '',screenHeight: ''};},mounted() {// 获取屏幕宽高this.screenWidth = plus.screen.resolutionWidth;this.screenHeight = plus.screen.resolutionHeight;// 初始化画布this.init()},methods: {show(path) {const view = new plus.nativeObj.View('watermark', {top: '0px',left: '0px',height: '100%',width: '100%',opacity: 0.2});let popupViewContentList = [{src: path,id: "logo",tag: "img",position: {top: "0px",left: "0px",width: this.screenWidth + 'px',height: this.screenHeight + "px",}}]view.draw(popupViewContentList);view.interceptTouchEvent(false)view.show()// uni全局引用 方便个别页面关闭uni.$view = view},init() {let that = thisconst ctx = uni.createCanvasContext('myCanvas', this);// 在 Canvas 上绘制图形、文本等let angleInRadians = -45 * Math.PI / 180;// 将原点移动到画布中心ctx.translate(this.screenWidth / 2, this.screenHeight / 2);// 旋转画布ctx.rotate(angleInRadians);// 绘制透明背景ctx.fillStyle = 'rgba(0, 0, 0, 0)';ctx.fillRect(-100, -1000, this.screenWidth, this.screenHeight);ctx.setFillStyle('#000');ctx.setFontSize(12);for (let i = 0; i < 100; i++) {for (let j = 0; j < 6; j++) {ctx.fillText( new Date(), 300 * j - 600, 40 * i - 1000);}}// ctx.rotate('45')ctx.draw(true, () => {// 画布转换图片uni.canvasToTempFilePath({canvasId: 'myCanvas',fileType: 'png',x: 0,y: 0,width: this.screenWidth,height: this.screenHeight,quality: 1,complete: function(res) {// 创建水印that.show(res.tempFilePath)},});});}}}
</script><style>
</style>

相关文章:

uniapp app端水印组件封装 一次引入版

直接上代码 <template><view><canvas canvas-id"myCanvas"style"width: 100vw; height: 100vh;opacity: 0;position: fixed;top: -1000px;"></canvas></view> </template><script>export default {name: "…...

最新Unity游戏主程进阶学习大纲(2个月)

过完年了&#xff0c;很多同学开始重新规划自己的职业方向,找更好的机会,准备升职或加薪。今天给那些工作了1~5年的开发者梳理”游戏开发客户端主程”的学习大纲&#xff0c;帮助大家做好面试准备。适合Unity客户端开发者。进阶主程其实就是从固定的几个方面搭建好完整的知识体…...

NoSQL 数据库管理工具,搭载强大支持:Redis、Memcached、SSDB、LevelDB、RocksDB,为您的数据存储提供无与伦比的灵活性与性能!

NoSQL 数据库管理工具&#xff0c;搭载强大支持&#xff1a;Redis、Memcached、SSDB、LevelDB、RocksDB&#xff0c;为您的数据存储提供无与伦比的灵活性与性能&#xff01; 【官网地址】&#xff1a;http://www.redisant.cn/nosql 介绍 直观的用户界面 从单一应用程序中同…...

基于Spring Boot的多级缓存系统设计

在构建大规模应用时&#xff0c;缓存系统是提高性能的关键因素之一。为了更有效地利用缓存&#xff0c;我们可以设计一个基于Spring Boot的多级缓存系统&#xff0c;结合本地内存缓存&#xff08;如Caffeine&#xff09;和分布式缓存&#xff08;如Redis&#xff09;。以下是一…...

k8s-配置与存储-配置管理

文章目录 一、配置存储1.1 ConfigMap1.1.1.基于文件夹的创建方式1.1.2指定文件的创建方式1.1.3 配置文件创建configmap 1.2 Secret1.2.1Secret的应用与Docker仓库 Secret设置1. Kubernetes 中的 Secrets&#xff1a;创建 Secret 示例&#xff1a;将 Secret 挂载到 Pod 中的示例…...

c语言实现bellman-ford算法

下面是使用C语言实现Bellman-Ford算法的示例代码。Bellman-Ford算法用于在带权重的图中找到从单个源点到所有其他顶点的最短路径,它也能处理图中包含负权重边的情况。 #include <stdio.h> #include <stdlib.h> #include <limits.h>// 定义边的结构 struct …...

socket与rpc的区别

如今的游戏开发&#xff0c;不搞个跨服玩法都不好意思说在做游戏了&#xff08;当然&#xff0c;也跟游戏类型有关&#xff0c;一些轻度休闲游戏可以排除在外&#xff09;。跨服玩法的设计&#xff0c;可以进一步激发玩家追求高战力的虚荣心&#xff0c;也可以汇聚玩家数量&…...

10、内网安全-横向移动域控提权NetLogonADCSPACKDC永恒之蓝

用途&#xff1a;个人学习笔记&#xff0c;有所借鉴&#xff0c;欢迎指正&#xff01; 背景&#xff1a; 主要针对内网主机中的 域控提权漏洞&#xff0c;包含漏洞探针和漏洞复现利用。 1、横向移动-系统漏洞-CVE-2017-0146&#xff08;ms17-010&#xff0c;永恒之蓝&#xff0…...

代码随想录算法训练营第三八天 | 动态规划

目录 动态规划基础斐波那契数爬楼梯使用最小花费爬楼梯 LeetCode 509. 斐波那契数 LeetCode 70. 爬楼梯 LeetCode 746. 使用最小花费爬楼梯 动态规划基础 Dynamic Programming (DP) 如果某一问题有很多重叠子问题&#xff0c;使用动态规划是最有效的。 动态规划中每一个状态…...

【ubuntu2004安装N卡驱动】

软硬件环境 硬件&#xff1a;联想notebook16&#xff0c;显卡4060laptop 软件&#xff1a; ubuntu20.04 驱动安装成功的版本&#xff1a;NVIDIA-Linux-x86_64-535.146.02.run 使用默认的驱动安装&#xff0c;没用原因如下 让手动安装。 手动安装 环境准备&#xff1a; sudo …...

使用 Docker 安装 Kibana 8.4.3

使用 Docker 安装 Kibana 8.4.3 一. 安装启动 Kibana 8.4.3二. 简单使用2.1 向 Elasticsearch 发送请求2.2 搜索2.3 整体页面 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 安装k…...

基于python社交网络大数据分析系统的设计与实现

项目&#xff1a;基于python社交网络大数据分析系统的设计与实现 摘 要 社交网络大数据分析系统是一种能自动从网络上收集信息的工具&#xff0c;可根据用户的需求定向采集特定数据信息的工具&#xff0c;本项目通过研究爬取微博网来实现社交网络大数据分析系统功能。对于采集…...

【设计模式】23种设计模式笔记

设计模式分类 模板方法模式 核心就是设计一个部分抽象类。 这个类具有少量具体的方法&#xff0c;和大量抽象的方法&#xff0c;具体的方法是为外界提供服务的点&#xff0c;具体方法中定义了抽象方法的执行序列 装饰器模式 现在有一个对象A&#xff0c;希望A的a方法被修饰 …...

编程笔记 Golang基础 009 标识符和关键字

编程笔记 Golang基础 009 标识符和关键字 一、标识符二、标识符分类&#xff08;一&#xff09;空白标识符&#xff08;又称下划线 _&#xff09;&#xff08;二&#xff09;预声明标识符&#xff08;三&#xff09;唯一标识符&#xff08;四&#xff09;导出标识符 三、关键字…...

vue3中mockjs模拟获取数据

开发项目的时候&#xff0c;如果后端接口没有出来&#xff0c;前端工程师也不必非得等接口出来才进行下步开发。可以使用mock.js来模拟接口数据&#xff0c;以下就是使用vue3设置hook函数来封装axios请求&#xff0c;配合mock.js来实现的代码&#xff0c;mock的官网 Mock.js 一…...

element ui 添加自定义方法

今天在修改 el-table 源码过程中遇到一个头大的问题&#xff0c;原本修改编译后&#xff0c;将 element的子目录lib下的文件复制到项目的响应目录里就可以了&#xff0c;但是&#xff0c;这次不知为何&#xff0c;编译老是出问题&#xff0c;实在没有办法&#xff0c;我就直接修…...

Hive UDF

当Hive提供的内置函数不能满足查询需求时&#xff0c;用户可以根据自己业务编写自定义函数&#xff08;User Defined Functions, UDF), 然后在HiveQL中调用。 例如有这样一个需求&#xff1a;为了保护用户隐私&#xff0c;当查询数据的时候&#xff0c;需要将用户手机号的中间…...

python Opencv 中绘制图

目录 一:绘制直线 二:绘制矩形 三:绘制圆形 四:绘制椭圆...

imazing软件安全吗?2024中文永久免费许可证

以下是iMazing更多的使用场景描述&#xff1a; iMazing3Mac-最新绿色安装包下载如下&#xff1a; https://wm.makeding.com/iclk/?zoneid49816 iMazing3Win-最新绿色安装包下载如下&#xff1a; https://wm.makeding.com/iclk/?zoneid49817 1. 数据迁移 当你换新的iOS设…...

JavaScript:防抖与节流

文章目录 防抖(Debounce)节流 (Throttle) 在JavaScript中&#xff0c;防抖&#xff08;debounce&#xff09;和节流&#xff08;throttle&#xff09;是两种优化函数调用频率的策略&#xff0c;它们主要用于限制频繁触发的事件回调函数执行次数&#xff0c;以防止过多不必要的计…...

逻辑流中,判断操作符NULLOREMPTY的限制

问题描述&#xff1a; 逻辑流中&#xff0c;判断操作符NULLOREMPTY的限制 解决方案: NULLOREMPTY与NOTNULLOREMPTY都只能判断值是null或者空字符串&#xff0c;判断空对象不生效。建议如果是{}空对象&#xff0c;请使用java表达式去写判断条件。 比如下图&#xff1a;Busin…...

红队exe捆绑避坑指南:绕过EDR与邮件网关的可信交付实践

1. 这不是“打包器教学”&#xff0c;而是红队实战中反复摔打出来的交付逻辑在真实红队支撑或攻防演练中&#xff0c;我见过太多人把“exe捆绑”当成一个纯技术动作&#xff1a;msfvenom生成payload → 用Resource Hacker换图标 → 7-Zip加自解压 → 发给目标。结果呢&#xff…...

主芯片LP3717BTT+LP3568C,5V3.1A过认证适配器⽅案(电路原理图)

LP3717BTT LP3568C 是一套 5V/3.1A&#xff08;15.5W&#xff09;隔离型反激电源方案&#xff0c;主打"过认证、高效率、低温度"。LP3717BTT 是原边 PWM 控制器&#xff0c;LP3568C 是次级同步整流芯片&#xff0c;两者配合实现高精度恒压输出&#xff0c;板端效率可…...

Autosar诊断开发避坑指南:CANFD升级后ECU不响应?可能是你的CANTP帧头格式搞错了!

Autosar诊断开发实战&#xff1a;CANFD升级中的CANTP帧头陷阱与精准避坑策略 当传统CAN网络向CANFD迁移时&#xff0c;诊断协议栈的适配问题往往成为工程师的"午夜噩梦"。我曾亲眼见证一个团队花费两周时间追踪ECU无响应问题&#xff0c;最终发现仅仅是CANTP层单帧格…...

别再纠结Unity和Godot了!用Python写游戏,从零开始30分钟搞定你的第一个Ren`Py视觉小说

用Python写游戏&#xff1a;30分钟打造你的第一款RenPy视觉小说 当Python开发者想要涉足游戏创作时&#xff0c;往往会面临一个尴尬的选择&#xff1a;要么学习C#配合Unity&#xff0c;要么用GDScript适应Godot&#xff0c;这些额外的语言学习曲线常常让人望而却步。但鲜为人知…...

从能算到秒杀:完全平方数与最少数量的数学真相

LeetCode Hot 100 刷题笔记 第 15 篇如果说「跳跃游戏 II」是在教你 什么时候不得不跳&#xff0c;那 279. 完全平方数​ 就是在考你&#xff1a;最少能用几个平方数&#xff0c;凑出一个整数&#xff1f;这也是我第一次意识到&#xff1a;有些动态规划&#xff0c;其实是在替…...

Mythos骨架式推理:企业级AI能力治理与因果建模新范式

1. 项目概述&#xff1a;一次被刻意“锁住”的能力跃迁如果你最近关注大模型前沿动态&#xff0c;大概率已经看到“Anthropic Mythos”这个词在技术圈悄然升温。它不是某个新发布的开源模型&#xff0c;也不是某家创业公司的秘密武器&#xff0c;而是Anthropic内部代号为Mythos…...

深度解析:光引擎、光模块、光器件之间的关系和区别?

随着AI大模型加速迭代&#xff0c;算力集群正从“千卡”向“万卡”“十万卡”规模迈进&#xff0c;光通信作为连接算力的“血管”&#xff0c;其内部层级关系变得愈发关键。然而&#xff0c;光器件、光模块、光引擎这三者并非同一概念&#xff0c;而是产业链中层层递进的“铁三…...

AssetStudio深度解析:Unity资源提取原理与跨版本兼容实践

1. 这不是个“点开即用”的工具&#xff0c;而是一把需要校准的Unity资源解剖刀AssetStudio这个名字听起来像某个轻量级小工具&#xff0c;但实际用过的人很快会意识到&#xff1a;它根本不是拿来就跑的“一键提取器”&#xff0c;而是一套需要你亲手调参、理解Unity底层序列化…...

2026免费在线去水印软件怎么选?实测5款推荐+功能对比指南

为什么需要去水印工具&#xff1f; 在内容创作和日常使用中&#xff0c;水印是版权保护的重要标志&#xff0c;但有时我们需要处理自己拥有版权的内容或进行合法的编辑操作。无论是整理自己的工作素材、编辑设计稿&#xff0c;还是去除合法获取内容上的平台标记&#xff0c;都需…...