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

uniapp、小程序canvas相关

  • 1、圆形or圆形头像
//示例
const ctx = uni.createCanvasContext('myCanvas'); //canvas
const round = uni.upx2px(72) / 2; // 半径
const x = uni.upx2px(92); //目标x轴位置
const y = uni.upx2px(236); //目标y轴位置//if 图片是不是静态资源
async =>
const imgSrc = 'https://xxxxxxxxxx';
const imgRes = await uni.getImageInfo({src: imgSrc
});
const url = await imgRes?.path;//else
const imgSrc = '项目静态文件/xxx.png';drawRound(ctx, round, x, y, url); //调用const drawRound = (ctx, round, x, y, img) => {ctx.save();ctx.beginPath();let r = round;let d = 2 * r;let cx = x + r;let cy = y + r;ctx.arc(cx, cy, r, 0, 2 * Math.PI);ctx.clip();ctx.drawImage(img, x, y, d, d);ctx.restore();
};
  • 2、填充背景
const ctx = uni.createCanvasContext('myCanvas'); //canvas
width, height => canvas的width,height
const createCanvasbj = (ctx, width, height) => {ctx.beginPath();ctx.rect(0, 0, width, height);ctx.setFillStyle('#FAFAFA');ctx.fill();
};
  • 3、文字
ctx.setFillStyle('#646978');
ctx.setFontSize(20);
ctx.fillText(123123, x, y);

*4、阴影

const createShadow = () => {ctx.beginPath();ctx.shadowOffsetX = 0;ctx.shadowOffsetY = 5;ctx.shadowColor = '#D4D4D4';ctx.shadowBlur = 10;ctx.rect(x, y, Width, Height);ctx.setFillStyle('#FFFFFF');ctx.fill();
};

*5、圆角矩形

const createRoundedrectangle = ( ctx, tagLeft, tagWidth, tagTop, tagHeight, radius) => {//tagLeft >= x//tagTop >= y//tagHeight => width//radius => 圆角ctx.beginPath();ctx.arc(tagLeft + tagWidth - radius, tagTop + tagHeight - radius, radius, 0, Math.PI * 0.5);ctx.lineTo(tagLeft + radius, tagTop + tagHeight);ctx.arc(tagLeft + radius, tagTop + tagHeight - radius, radius, Math.PI * 0.5, Math.PI);ctx.lineTo(tagLeft, tagTop + radius);ctx.arc(tagLeft + radius, tagTop + radius, radius, Math.PI, Math.PI * 1.5);ctx.lineTo(tagLeft + tagWidth - radius, tagTop);ctx.arc(tagLeft + tagWidth - radius, tagTop + radius, radius, Math.PI * 1.5, Math.PI * 2);ctx.lineTo(tagLeft + tagWidth, tagTop + tagHeight - radius);ctx.closePath();ctx.setStrokeStyle('#E60012');ctx.setFillStyle('#E60012');ctx.fill();
};

相关文章:

uniapp、小程序canvas相关

1、圆形or圆形头像 //示例 const ctx uni.createCanvasContext(myCanvas); //canvas const round uni.upx2px(72) / 2; // 半径 const x uni.upx2px(92); //目标x轴位置 const y uni.upx2px(236); //目标y轴位置//if 图片是不是静态资源 async > const imgSrc https:/…...

[工业自动化-23]:西门子S7-15xxx编程 - 软件编程 - 西门子PLC人机界面交互HMI功能概述、硬件环境准备、软件环境准备

目录 一、什么是人机界面 二、什么是PLC人机交互界面HMI 三、人机界面设计的功能列表 四、开发主机与PLC的连接方式 五、开发主机与HMI的连接方式 六、HMI组态 一、什么是人机界面 人机界面是指人与机器或系统之间的交互界面。它是人类与计算机或其他设备之间进行信息交换…...

在Ubuntu系统中安装VNC并结合内网穿透实现公网远程访问

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...

java基础练习缺少项目?看这篇文章就够了(上)!

公众号:全干开发 。 专注分享简洁但高质量的动图技术文章! 项目概述 本教程适合刚学习完java基础语法的同学,涉及if语句、循环语句、类的封装、集合等基础概念,使用大量gif图帮助读者演示代码操作、效果等,是一个非常…...

鸿蒙为什么使用typescript 作为开发语言 而不是 flutter 或者 kotlin

猜想如下 dev studio 是基于 idea 二次开发的 ,使用kotlin 应该是更合理 变成 jetbrain 全家桶, 但是 现在android 开发也是kotlin 是不是为了做分割 ,所以不使用kotlin flutter 是谷歌的 安卓也是谷歌的 所以不采用 typescript 是微软的…...

Flutter NestedScrollView 、SliverAppBar全解析,悬浮菜单的应用

在我们开发过程中经常会使用到悬浮菜单的使用,当我们滑动到指定位置后,菜单会自动悬浮。 实现效果如下(左为滑动前、右为滑动后): 上述便是通过NestedScrollView 、SliverAppBar实现的效果,通过两个控件我…...

Mongodb 副本集名称重命名

副本集重命名 要重命名副本集,您必须关闭副本集的所有成员,然后使用新的副本集名称配置每个成员的数据库。 此过程需要停机。 先决条件 确保您的副本集未分片。重命名过程仅适用于未分片的副本集。 在重命名副本集之前,请 对 MongoDB 部…...

C#WPF属性触发器实例

本文讲解C#WPF属性触发器的实例 在属性触发器中,当一个属性发生更改时,它将立即或动画更改另一个属性 实例 <Windowx:Class="TriggerDemo.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://sch…...

Kotlin 核心语法,为什么选择Kotlin ?

Kotlin 是一个基于 JVM 的新的编程语言&#xff0c;由 JetBrains 开发。与Java相比&#xff0c;Kotlin的语法更简洁、更具表达性&#xff0c;而且提供了更多的特性。 Kotlin是使用Java开发者的思维被创建的&#xff0c;Intellij作为它主要的开发IDE。对于 Android开发者&#…...

SpringCloud微服务:Nacos的集群、负载均衡、环境隔离

目录 集群 在user-service的yml文件配置集群 启动服务 负载均衡 order-service配置集群 设置负载均衡 当本地集群的服务挂掉时 访问权重 环境隔离 1、Nacos服务分级存储模型 一级是服务&#xff0c;例如userservice 二级是集群&#xff0c;例如杭州或上海 …...

Selenium+Python做web端自动化测试框架实战

最近受到万点暴击&#xff0c;由于公司业务出现问题&#xff0c;工作任务没那么繁重&#xff0c;有时间摸索seleniumpython自动化测试&#xff0c;结合网上查到的资料自己编写出适合web自动化测试的框架&#xff0c;由于本人也是刚刚开始学习python&#xff0c;这套自动化框架目…...

Linux:安装MySQL服务(非docker方式)

1、下载安装包 下载MySQL安装包&#xff0c;需要Oracle官网的账号 下面是网友提供的账号及密码&#xff0c;亲测有效。 账户&#xff1a;3028064308qq.com 我用的这个&#xff0c;可以登陆 密码&#xff1a;OraclePassword123!Oracle Account: 602205528qq.com Oracle Pass…...

C++实现有理数类 四则运算和输入输出

面试 C 程序员&#xff0c;什么样的问题是好问题&#xff1f; - 知乎 https://www.cnblogs.com/bwjblogs/p/12982908.html...

小鸟飞呀飞

欢迎来到程序小院 小鸟飞呀飞 玩法&#xff1a;鼠标控制小鸟飞翔的方向&#xff0c;点击鼠标左键上升&#xff0c;不要让小鸟掉落&#xff0c;从管道中经过&#xff0c;快去飞呀飞哦^^。开始游戏https://www.ormcc.com/play/gameStart/204 html <canvas width"288&quo…...

Unity 场景烘培 ——unity Post-Processing后处理1(四)

提示&#xff1a;文章有错误的地方&#xff0c;还望诸位大神不吝指教&#xff01; 文章目录 前言一、Post-Processing是什么&#xff1f;二、安装使用Post-Processing1.安装Post-Processing2.使用Post-Processing&#xff08;1&#xff09;.添加Post-process Volume&#xff08…...

Burpsuite抓HTTPS证书导入问题

Burpsuite证书导出有两种方法&#xff1a; 第一种方法 1、开启代理后直接在浏览器中输入burp下载CA证书 2、在中间证书颁发机构中导入刚导出的证书 3、导入完成后再把这个证书选择导出&#xff0c;另存为cer格式的文件 4、在受信任的根证书颁发机构中导入刚保存的cer格式证书…...

python保存文件到zip压缩包中

这里我们使用zipfile这个库进行操作&#xff0c;保存压缩文件相对简单&#xff0c;只需要指定文件名即可&#xff0c;不需要读取那个文件&#xff1a; with zipfile.ZipFile("zip文件路径", mode, zipfile.ZIP_DEFLATED) as z:z.write("压缩源文件路径", …...

java发送媒体类型为multipart/form-data的请求

文章目录 public static String sendMultipartFormDataPostRequest(String urlString, String data) throws IOException {String fullUrl urlString "?" data;log.info("完整请求路径为{}", fullUrl);URL url new URL(fullUrl);HttpURLConnection co…...

自定义类使用ArrayList中的remove

Java中ArrayList对基础类型和字符串类型的删除操作&#xff0c;直接用remove方法即可。但是对于自定义的类来说&#xff0c;用remove方法删除不了&#xff0c;因为没有办法确定是否是要删除的对象。 ArrayList中remove源码是&#xff1a; public boolean remove(Object o) {if…...

前端面试考核点【更持续新中】

文章目录 HTMLcssjsVueReactTypeScript移动端&小程序编译/打包/构建npmnodejs微前端网络安全浏览器性能OKR工程化、标准化 HTML Script放在body中间会阻塞吗&#xff1f;defer与async的区别&#xff1f;https://blog.csdn.net/qq_41887214/article/details/124909219 DOM和…...

别再重复造轮子了!这个开源论坛小程序(Java+Uniapp)一套代码搞定 App/小程序/H5/PC,私域流量神器

你是否有过这些想法&#xff1f; 我想做个类似“知识星球”的圈子小程序&#xff0c;但外包报价动辄 5 万起…… 公司要做私域社区&#xff0c;需要同时支持微信小程序和 App&#xff0c;难道要养两个开发团队&#xff1f; 想靠“付费帖子 会员 打赏”变现&#xff0c;去哪…...

2026 SSH工具推荐:不装传统面板,还有什么更适合管理 Linux 服务器?

这几年很多人选 SSH 工具&#xff0c;已经不只是为了“远程登上服务器敲命令”。 真正常见的需求其实是&#xff1a;连上服务器之后&#xff0c;还要继续完成文件管理、服务部署、HTTPS 配置、站点检查&#xff0c;甚至多台 VPS 的统一管理。 也正因为这样&#xff0c;到了 202…...

WordPress靶场构建指南:从渗透测试流程到GetShell实战

1. 为什么这个靶场不是“玩具”&#xff0c;而是渗透测试能力的试金石WordPress靶场搭建这件事&#xff0c;圈内很多人第一反应是&#xff1a;“不就是下个DVWA或者bWAPP&#xff1f;点几下就完事。”但真正带过红队新人、做过甲方渗透评估的同行都清楚&#xff1a;一个能支撑从…...

如何为SUSI ViberBot添加自定义功能:扩展按钮与交互体验的完整指南

如何为SUSI ViberBot添加自定义功能&#xff1a;扩展按钮与交互体验的完整指南 【免费下载链接】susi_viberbot Viberbot for SUSI AI http://susi.ai 项目地址: https://gitcode.com/gh_mirrors/su/susi_viberbot 想要为你的SUSI ViberBot添加个性化功能吗&#xff1f;…...

Balena Etcher:3步搞定镜像烧录,告别传统工具烦恼

Balena Etcher&#xff1a;3步搞定镜像烧录&#xff0c;告别传统工具烦恼 【免费下载链接】etcher Flash OS images to SD cards & USB drives, safely and easily. 项目地址: https://gitcode.com/GitHub_Trending/et/etcher 你是否曾为制作启动盘而烦恼&#xff1…...

OpsKat v1.3.0 - SSH、数据库集中管理工具

平时操作服务器环境&#xff0c;经常要打开好几个工具来回切换&#xff0c;想着能不能直接跟 AI 说一句话就搞定&#xff0c;于是做了 OpsKat &#xff0c;就算你不使用 AI 功能&#xff0c;常用的资产操作都集成在一起&#xff0c;也不用再在好几个工具之间跳了。举几个实际使…...

航空航班延误预测:可解释性模型与四源融合实战

1. 项目概述&#xff1a;这不是一个“预测准不准”的问题&#xff0c;而是一个“预测有没有用”的问题我做航班延误预测项目&#xff0c;不是为了在Kaggle排行榜上刷个0.89的AUC就收工。真正让我在凌晨三点改完第17版特征工程脚本、盯着滚动的日志等模型收敛的&#xff0c;是去…...

飞书多维表格还能这么玩?我用它搭了个超好用的 AI 批量生图工具

大家好&#xff01;上一篇文章我分享了一个飞书多维表格自动化插件的核心功能&#xff0c;很多朋友都在问&#xff1a;这个插件到底能解决什么实际问题&#xff1f;今天就用我最近刚搭好的一个实战案例&#xff0c;给大家好好拆解一下。我用飞书多维表格&#xff0c;从零搭建了…...

【文档翻译】QNX Neutrino RTOS 7.1用户手册 - 第五章 文件操作

本文翻译自BlackBerry官方提供的QNX Neutrino RTOS User’s Guide&#xff0c;仅供学习参考使用 第五章 文件操作 文章目录第五章 文件操作文件类型文件名和路径名绝对路径和相对路径点和点点目录没有硬盘字母以点开头的路径名扩展名路径空间映射文件名规则所有内容的存储位置…...

GitHub Copilot X:AI编程助手如何重塑开发工作流与效率

1. 项目概述&#xff1a;当代码编辑器遇见“副驾驶”如果你和我一样&#xff0c;每天有超过一半的时间是在代码编辑器里度过的&#xff0c;那你一定对“效率”这个词有着近乎偏执的追求。从语法高亮、代码补全&#xff0c;到后来的LSP&#xff08;Language Server Protocol&…...