微信小程序 uniapp canvas 生成海报分享

本文介绍如何使用uniapp框架在微信小程序中利用canvas生成海报。内容包括组件编写方法,指出原生微信小程序的适配差异,并提供图片处理建议。适合使用uniapp的开发者参考。
摘要由CSDN通过智能技术生成

此代码是基于uni写的(编写微信小程序的第三方框架) 一个组件 有用这个框架的可以直接用,原生的微信小程序与这个相差不大,(只需改下事件监听方式,标签,参数传递就可以了),图片先打开试下,打不开就换下图片 直接用 没问题

<template>
    <div>
        <div :class="['share', visible ? 'show' : '']" @click="handleClose">
            <canvas
                class="canvas-hide"
                canvas-id="share"
                :style="{'width':canvasWidth*2 + 'rpx','height':canvasHeight*2 +'rpx'}"
            />
            <div class="content" :style="responsiveScale">
                <img
                    @click.stop="nothing"
                    class="canvas"
                    @longpress="handleSave"
                    :src="imageFile"
                    :style="{'width':canvasWidth +'rpx','height':canvasHeight + 'rpx'}"
                >
            </div>
        </div>
    </div>
</template>
<script>
//canvas UI以750图纸为标准 canvas测量值以750 rpx为标准
//文档上说y轴左上角  我测试是左下角
// ctx.fillText(
//     nickName,
//     rpx2px(160),
//     rpx2px(80),
// )
function getImageInfo(url) {
  return new Promise((resolve, reject) => {
    wx.getImageInfo({
      src: url,
      success: resolve,
      fail: reject
    });
  });
}
function createRpx2px() {
  const { windowWidth } = wx.getSystemInfoSync();
  return function(rpx) {
    //以rpx为单位
    return windowWidth / 750 * rpx * 2;
  };
}

const rpx2px = createRpx2px();
function canvasToTempFilePath(option, context) {
  return new Promise((resolve, reject) => {
    wx.canvasToTempFilePath(
      {
        ...option,
        success: resolve,
        fail: reject
      },
      context
    );
  });
}

function saveImageToPhotosAlbum(option) {
  return new Promise((resolve, reject) => {
    wx.saveI
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值