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

wordpress建站教程视频wordpress返回顶部插件

wordpress建站教程视频,wordpress返回顶部插件,电子商务营销师证书含金量,wordpress 百度主动推送需求:点击下载图片,上方是二维码,下方显示该二维码的相关内容,并且居中显示,支持换行 解决方案步骤: 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/801816.html

相关文章:

  • 专业简历制作网站有哪些网店运营推广职业技能等级证书
  • tool站长工具wordpress 打开慢方法
  • 2017做网站怎么赚钱动漫设计一般用什么软件
  • 微网站 app 区别专业的网站制作
  • 用.net做视频网站的案例word贴到wordpress
  • 北京壹零零壹网站建设如何建设网站兴田德润实惠
  • 做网站需要切图吗网站开发属于什么软件
  • 网站推荐赣州人才网下载
  • 合肥建设公司网站wordpress主题文件夹在哪
  • 子网站建设工作创意网站设计模板
  • 网站被做301跳转了怎么办查询关键词密度网站的网址有哪些
  • 专门做算法项目的网站开源多用户商城哪个好
  • 友情链接交换网站保障网装修网官网
  • 天气预报网站怎么做wordpress支持代码
  • 网站建设_微信开发wordpress自定义表单
  • 常州市建设工程管理中心网站wordpress 调用当前分类文章
  • 鹿寨县住房和城乡建设局网站网站建设代码上传
  • 网站备案 公司名称关联性wordpress主题应用
  • 怎做网站手机湛江购房网
  • 最新网站建设语言四川省城乡住房建设部网站
  • 龙岗网站建设-信科网络营销型网站建设公司哪家好哪个好
  • 网站建设及模板使用教程嘉定做网站的
  • 德宏企业网站建设合川房产网
  • 北京外贸营销网站建设费用前端用什么框架做网站
  • 做网站都需要什么深圳市做网站的
  • 新乡网站建设制作市场监督管理局是什么单位
  • 做宠物食品的网站烟台网站制作策划
  • 颐高养生园网站建设衡阳seo优化
  • 女人网上量体做衣网站网站制作教程一般地建网络
  • 做搜狗网站快速排名软尚海整装和沪佳哪个好