【前端canvas】canvas生成图片并下载或预览 uniapp预览图片 & pc下载

文章介绍了如何在PC页面和uniapp中利用canvas进行绘图后,将图片转换为base64格式并实现下载。在PC页面,通过创建a标签并触发点击事件来下载图片;在uniapp中,使用canvasToTempFilePath方法结合uni.previewImage预览并保存图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的另外一篇文章详细讲解了如何使用canvas进行绘图开发 https://blog.youkuaiyun.com/PiPiFamily/article/details/131108351
这篇文章主要分享 使用canvas画图后我们会有一些下载保存canvas所画的图片,那么我们的方法就是将图转为base64进行下载

一、pc页面开发

<body>
 <canvas id="temp" ></canvas>
 <script type="text/javascripr">
       const c = document.getElementById('temp')
        const base64Img = c.toDataURL('image/png')
        var a = document.createElement('a') // 生成一个a元素
        var event = new MouseEvent('click') // 创建一个单击事件
        a.download = '证书图片' // 设置图片名称
        a.href = base64Img // 将生成的URL设置为a.href属性
        a.dispatchEvent(event)
</script>
也可
<script type="text/javascripr">
       const c = document.getElementById('temp')
        const base64Img = c.toDataURL('image/png')
        var a = document.createElement('a') // 生成一个a元素
       //  document.body.appendChild(a)
        a.download = '证书图片' // 设置图片名称
        a.href = base64Img // 将生成的URL设置为a.href属性
        a.click()
        a.remove()
</script>
 </body>


二、uniapp开发
这里基于vue2框架来进行开发

<template>
 <canvas id="temp" ></canvas>
  </template>
<script>

 export default {
 data:{
        return{
         width : 250
     height: 375,
     }
  }
  methods:{
           viewPhoto1() {
        uni.canvasToTempFilePath({
          canvasId: 'firstCanvas',
          destWidth: this.width * 2, //分享图片尺寸=画布尺寸1*缩放比0.5*像素比2
          destHeight: this.height * 2,
          quality: 1,
          x: 0,
          y: 0,
          fileType: 'png',
          success: (res) => {
            uni.previewImage({
              // 预览图片  图片路径必须是一个数组
              urls: [res.tempFilePath],
              current: 0,
            })
          },
        })
      },
  }
 }
</script>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值