技术不行但人小帅 2023-04-24 16:58 采纳率: 59.7%
浏览 36
已结题

微信小程序canvas如何自适应宽高?

微信小程序canvas如何自适应宽高?
前端显示

img


生成后正常:
所以问题应该是处在canvas标签这:尝试过使用rpx,没什么用

img


    <canvas id="myCanvas" type="2d" :style="'text-align: center;margin: 0 auto;background-color: black;'"></canvas>

下边的代码,生成的图片无误,但是页面显示的图片是有问题的, 我大概知道是canvas 是没有rpx的适应的。

    addwater() {
            let that=this;
             wx.chooseImage({
                count: 1, // 最多可选1张图片
                success: function(res) {
                    // console.log(res);
                      const tempFilePathss = res.tempFilePaths;
                    
                  // 获取选中图片的本地临时文件路径
                  const tempFilePath = res.tempFilePaths[0];
                  // 创建选择器查询对象
                  const query = wx.createSelectorQuery();
                  // 查询canvas组件
                  wx.getImageInfo({
                        src: tempFilePathss[0],
                        success: function (infoRes) {
                          that.imgWidth = infoRes.width;
                          that. imgHeight = infoRes.height;
                          console.log('图片宽度:',   that.imgWidth);
                          console.log('图片高度:', that.imgHeight);
                        },
                        fail: function (error) {
                          console.log('获取图片信息失败:', error);
                        }
                      });
                  query.select('#myCanvas').fields({ node: true, size: true }).exec(function(res) {
                    const canvas = res[0].node;
                    const ctx = canvas.getContext('2d');
                    // 创建图片对象
                    const img = canvas.createImage();
                    img.onload = function() {
                      // 设置canvas大小为图片大小
                      canvas.width = img.width;
                      canvas.height = img.height;
                      // 将图片绘制到canvas上
                      ctx.drawImage(img, 0, 0, img.width, img.height);
                      // 在图片上添加文字水印
                      that.addWatermark(canvas, '仅供办理业务使用'); // 添加水印
                   wx.canvasToTempFilePath({
                     canvasId: 'myCanvas',
                     canvas:canvas,
                     success: function(res) {
                       // 保存图片到本地
                       console.log(res.tempFilePath);
                     },
                     fail: function(error) {
                       console.log('导出图片失败:', error);
                     }
                   });
                    };
                    // 设置图片路径
                    img.src = tempFilePath;
                    // console.log(tempFilePath);
                  });
                },
              });
        }

  • 写回答

1条回答 默认 最新

  • asinowant 2023-04-24 18:29
    关注

    img


    这里有问题

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月24日
  • 创建了问题 4月24日

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址