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

做网站多少钱特惠西宁君博sseo排名app

做网站多少钱特惠西宁君博s,seo排名app,wordpress多主题插件下载,山东泰润建设集团网站二维码生成工具使用uqrcode/js,版本4.0.7 官网地址:uQRCode 中文文档(不建议看可能会被误导) 本项目采用了npm引入方式,也可通过插件市场引入,使用上会略有不同 准备工作: 安装:pnpm…

二维码生成工具使用@uqrcode/js,版本4.0.7
官网地址:uQRCode 中文文档(不建议看可能会被误导)
本项目采用了npm引入方式,也可通过插件市场引入,使用上会略有不同


准备工作:
安装:pnpm add @uqrcode/js
引入:import UQRCode from '@uqrcode/js/uqrcode'


二维码生成及转图片逻辑:


<view class="qrcode-icon"><!-- 设置 canvas 的固定尺寸 --><canvas type="2d" id="qrcodeCanvas" canvas-id="qrcodeCanvas" style="width: 360rpx; height: 360rpx;"></canvas>
</view>// 生成二维码
const generateWXQRCode = async () => {const query = uni.createSelectorQuery();query.select('#qrcodeCanvas').fields({ node: true, size: true }, () => {}).exec(async (res) => {if (!res[0]?.node) {console.error('未找到二维码Canvas节点');return;}const canvas = res[0].node;const ctx = canvas.getContext('2d');const { width, height } = res[0];// 设置 canvas 的绘制尺寸(避免模糊)canvas.width = width;canvas.height = height;// 创建二维码实例const qrcode = new UQRCode({data: `111111`,size: Math.min(width, height),canvasContext: ctx});// 绘制二维码await qrcode.make();await qrcode.draw();// 获取base64并转为在线urlconst fileRes: any = await base64ToTempFile({ image: canvas.toDataURL() })// 转为临时urluni.downloadFile({url: fileRes.data.fileUrl,success: (res) => {pageData.qrCodePath = res.tempFilePath}});});
};

页面绘制:
 

 <!-- 隐藏的 Canvas(用于绘制截图) --><canvascanvas-id="screenshotCanvas":style="{width: `${screenWidth}px`,height: `${screenHeight}px`,position: 'fixed',left: '-9999px'}">
</canvas>const screenWidth = ref(300)
const screenHeight = ref(400)
// 保存当前页面为图片
const takeScreenshot = async () => {try {// 1. 获取系统信息const systemInfo = await uni.getSystemInfo()screenWidth.value = systemInfo.screenWidthscreenHeight.value = systemInfo.screenHeight// 2. 设置canvas尺寸(考虑设备像素比)const dpr = systemInfo.pixelRatio || 1const canvasWidth = Math.min(screenWidth.value, 750)const canvasHeight = Math.min(screenHeight.value, 1334)const rpxToPx = screenWidth.value / 750// 3. 获取canvas上下文const canvasContext = uni.createCanvasContext('screenshotCanvas')// 4. 绘制白色背景(确保有内容)canvasContext.setFillStyle('#FFFFFF')canvasContext.fillRect(0, 0, canvasWidth, canvasHeight)// 5. 绘制背景图(使用绝对路径)const bgPath = '/subPages/static/qrcode-bg.png' // 确保图片存在于此路径try {canvasContext.drawImage(bgPath, 0, 0, canvasWidth, canvasHeight)} catch (err) {console.error('背景图加载失败:', err)// 使用备用颜色canvasContext.setFillStyle('#F0F0F0')canvasContext.fillRect(0, 0, canvasWidth, canvasHeight)}// 6. 绘制文本内容const fontSizeTitle = 72 * rpxToPxconst fontSizeDesc = 32 * rpxToPxconst centerX = canvasWidth / 2// 标题canvasContext.setFontSize(fontSizeTitle)canvasContext.setFillStyle('#000000') // 改为黑色确保可见canvasContext.setTextAlign('center')const displayText = pageData.name?.length > 7? pageData.name.substring(0, 6) + '...': pageData.namecanvasContext.fillText(displayText, centerX, 260 * rpxToPx)// 副标题canvasContext.setFontSize(fontSizeDesc)canvasContext.fillText('邀请您加入车队', centerX, 320 * rpxToPx)// 绘制二维码const qrSize = 200;const qrX = (canvasWidth - qrSize) / 2;const qrY = 480 * rpxToPx;canvasContext.drawImage(pageData.qrCodePath, qrX, qrY, qrSize, qrSize);// 失效时间canvasContext.setFillStyle('#000000')canvasContext.fillText(`${pageData.selectedTime} 23:59:59后失效`,centerX,920 * rpxToPx)// 7. 执行绘制(关键修改)await new Promise<void>((resolve, reject) => {canvasContext.draw(true, () => {setTimeout(() => {// 检查Canvas内容console.log('Canvas绘制完成')resolve()}, 500) // 增加延迟确保渲染完成})})// 8. 生成临时文件const { tempFilePath } = await uni.canvasToTempFilePath({canvasId: 'screenshotCanvas',quality: 1, // 最高质量width: canvasWidth * dpr, // 考虑DPIheight: canvasHeight * dpr})// 9. 保存到相册await uni.saveImageToPhotosAlbum({filePath: tempFilePath})uni.showToast({title: '保存成功',icon: 'success'})} catch (err) {console.error('截图失败:', err)uni.showToast({title: '保存失败: ' + (err.errMsg || '未知错误'),icon: 'none',duration: 3000})}
}

http://www.dtcms.com/wzjs/72099.html

相关文章:

  • dedecms 我的网站实时热搜榜榜单
  • 网站服务器租赁多少钱百度热搜电视剧
  • 免费建站怎么操作深圳百度推广优化
  • ui设计是什么东西上海seo推广服务
  • .xyz做网站怎么样公司宣传网站制作
  • 网站开发和前端开发郑州搜索引擎优化
  • 对网站建设培训的建议国际新闻网
  • 建设网站文案杭州百家号优化
  • java购物网站开发教程优质的seo快速排名优化
  • 图片网站的优化病毒式营销
  • 武汉品牌网站建设线上销售如何找到精准客户
  • 让网站百度不到大数据是干什么的
  • 网站建设 发展方向线上推广员是做什么的
  • 如何整理网站上海seo公司排名
  • 家里笔记本做网站 怎么解析北京百度推广代运营
  • 政府网站建设考核 邵阳种子搜索引擎 磁力天堂
  • 大淘客网站logo怎么做百度打开百度搜索
  • 一家专做中式设计的网站推广电话
  • 提供手机网站制作公司谷歌账号
  • 备案平台新增网站宁波seo网络推广选哪家
  • 宁乡电商网站建设收费营业推广策略有哪些
  • 洪梅镇做网站互联网营销师是做什么的
  • 网站banner内容西安网站推广助理
  • 笑话网站程序济南网络推广网络营销
  • 爱建站小程序功能介绍百度竞价规则
  • 做网站销售水果北京网站优化方式
  • 380元网站建设西安seo排名公司
  • 国内销售平台有哪些seo诊断服务
  • 电子商务网站架构重庆seo团队
  • 苏州网站设计公司优化公司排行榜