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

wordpress 模板带数据库长沙正规seo优化价格

wordpress 模板带数据库,长沙正规seo优化价格,网站域名在哪里看,lamp环境做网站需求:点击下载图片,上方是二维码,下方显示该二维码的相关内容,并且居中显示,支持换行 解决方案步骤: 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/33906.html

相关文章:

  • 我做网站啦 圆通导航游戏推广合作
  • 网站服务器安装教程视频教程杭州推广平台有哪些
  • 成都网站建设公司湖南岚鸿b2b免费网站推广平台
  • 微信链接网站怎么做今日国内新闻重大事件
  • 苏州响应式网站建设西安百度推广运营
  • 南京做网站的公司网站结构
  • php律师网站源码百度网盘客服电话24小时
  • 如何制作淘宝客网站扬州seo优化
  • 帮人做网站被派出所抓到徐州杭州网站seo外包
  • 网站建设与运营的论文的范本百度搜索流量查询
  • 谁用腾讯风铃做网站的凤凰网台湾资讯
  • 天猫店铺装修做特效的网站seo工作职责
  • 域名注册的网址长沙关键词优化服务
  • 网站ip被屏蔽怎么办广州seo网站推广优化
  • 线上设计师靠谱吗长沙优化科技
  • 猪八戒托管赏金做网站新手怎么引流推广
  • 现在可以做网站么百度指数的搜索指数
  • 建设银行成都开发中心网站网页制作
  • 毕业论文网站开发需要多少钱sem优化软件哪家好
  • 做外贸自己的公司网站企业seo推广
  • 都有哪些方法做动态网站的静态化厦门seo屈兴东
  • 怎么做卖橘子的网站十大最靠谱培训机构
  • 腾讯云服务器如何建设网站查域名注册详细信息查询
  • 知名的设计公司网站网络营销策划书3000字
  • 雄安做网站优化网站seo优化推广
  • 运营公众号还是做网站腾讯企点官网
  • 铜陵网站开发网站优化与seo
  • 政务公开网站建设管理营销推广网站
  • webstation做网站cdq百度指数
  • 培训机构活动策划网站代码优化