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

网站没收录的几大原因广州网络广告推广公司

网站没收录的几大原因,广州网络广告推广公司,怎么做电影网站,外贸网站和企业网站需求:点击下载图片,上方是二维码,下方显示该二维码的相关内容,并且居中显示,支持换行 解决方案步骤: 1. 使用qrcode生成二维码的DataURL。 2. 创建canvas,将二维码图片绘制到canvas的上半部分…

需求:点击下载图片,上方是二维码,下方显示该二维码的相关内容,并且居中显示,支持换行

解决方案步骤:

1. 使用qrcode生成二维码的DataURL。

2. 创建canvas,将二维码图片绘制到canvas的上半部分。

3. 在canvas的下半部分绘制文字,处理换行和样式。

4. 将canvas转换为图片,触发下载。

具体实现步骤:

1、安装依赖

npm install qrcode --save

2、组件实现

<template><div><button @click="generateAndDownload">下载图片</button><canvas ref="canvas" style="display: none;"></canvas></div>
</template><script>
import QRCode from 'qrcode'export default {data() {return {canvasWidth: 400,    // 画布宽度canvasHeight: 400,   // 画布高度qrSize: 300,        // 二维码尺寸textConfig: {        // 文字配置content: '这是图片的文字说明部分,支持自动换行功能,当文字超过宽度限制时会自动换行显示。',x: 40,y: 320,lineHeight: 24,maxWidth: 320,     // canvasWidth - 80fontSize: '16px Arial',color: 'black'}}},methods: {// 文字换行处理wrapText(ctx, text, x, y, maxWidth, lineHeight) {const chars = text.split('')let line = ''let testLine = ''// 设置精确文本测量基线ctx.textBaseline = 'top'let xCoord = xfor (let i = 0; i < chars.length; i++) {testLine = line + chars[i]const metrics = ctx.measureText(testLine)if (metrics.width > maxWidth && i > 0) {ctx.fillText(line, x, y)line = chars[i]y += lineHeight} else {line = testLine// 居中显示文字xCoord = (maxWidth - metrics.width) / 2 + 40}}ctx.fillText(line, xCoord, y)},// 生成并下载图片async generateAndDownload() {const canvas = this.$refs.canvasif (!canvas) return// 初始化画布canvas.width = this.canvasWidthcanvas.height = this.canvasHeightconst ctx = canvas.getContext('2d')if (!ctx) returntry {// 绘制背景ctx.fillStyle = 'white'ctx.fillRect(0, 0, this.canvasWidth, this.canvasHeight)// 生成二维码const qrDataURL = await QRCode.toDataURL('https://example.com', { width: this.qrSize })await new Promise(resolve => {const img = new Image()img.onload = () => {// 居中绘制二维码const margin = (this.canvasWidth - this.qrSize) / 2ctx.drawImage(img, margin, 20, this.qrSize, this.qrSize)resolve()}img.src = qrDataURL})// 绘制文字ctx.fillStyle = this.textConfig.colorctx.font = this.textConfig.fontSizethis.wrapText(ctx,this.textConfig.content,this.textConfig.x,this.textConfig.y,this.textConfig.maxWidth,this.textConfig.lineHeight)// 触发下载const link = document.createElement('a')link.download = 'qr-with-text.png'link.href = canvas.toDataURL('image/png')link.click()} catch (error) {console.error('生成失败:', error)}}}
}
</script>
http://www.dtcms.com/wzjs/550641.html

相关文章:

  • 大连做公司网站哪家好外贸营销员
  • 做网站有什么比较好看的动效开原网站开发
  • 唐山做网站哪家好网上比较好的装修设计平台
  • 织梦高端html5网站建设工作室网络公司网站模板景观设计公司排行榜
  • 为企业进行网站建设方案深圳市建设工程交易服
  • 兰州西固区网站建设平台网站文件大小
  • 广州站是不是广州火车站美橙互联网站打不开
  • 怎么找网站做推广wordpress的页脚模板修改就出错
  • 宁波建设局网站wordpress 树 插件
  • 东莞建设工程检测中心网站网络营销的4p策略
  • 电子商务网站建设合同网站域名要多少钱
  • 学校网站建设注意什么郑州seo关键词自然排名工具
  • 外贸定制网站建设电话成都网页制作公司在线咨询
  • 中国新兴建设招聘网站网络优化seo是什么工作
  • 湖南建设厅网站不良记录塘沽做网站公司
  • 扁平化配色方案网站网站开发怎么兼容ie
  • 网站空间后台登录有哪些竞价网站
  • 怎么注册个人的网站网站开发 书
  • 网站数据库怎么恢复二手商品交易网站开发
  • 购物网站app开发多少钱手机链接网页怎么制作
  • 一个公司可以做几个网站备案展馆设计网站
  • 通辽正规网站建设网站开发 问题 关键技术
  • 网站开发税率税种公司营销网络怎么写
  • 佛山网站建设推广厂商排名为了同学都能访问网站如何做
  • 手机便宜的网站建设网站建设邀标书
  • 深圳市网站建设制作设计品牌jquery html转wordpress
  • 商务网站建设实验报告杭州建平台网站公司
  • 一次备案多个网站上海注册公司注册资本
  • 男女直接做那个的视频网站昆明软讯科技网站建设
  • 旅游app用户人群分析wordpress数据库优化技巧