收藏
回答

canvas 2d,wx.canvasToTempFilePath保存jpg文件变大?

3647×2086,2.44M的jpg文件,我在Canvas 2d中用1920×1098绘制,wx.canvasToTempFilePath保存后,文件大小变成了4.087M,更换手机型号,大小有小量的变化。代码如下:

var canvas = param._this.data.imgCavObj;

            canvas.width = param.size.canvas_w * param._this.data.dpr;

            canvas.height = param.size.canvas_h * param._this.data.dpr;

            var ctx = param._this.data.imgCtx;

            ctx.scale(param._this.data.dpr, param._this.data.dpr);

            ctx.clearRect(0, 0, param.size.canvas_w, param.size.canvas_h);

            var img = param._this.data.cavImg;

            img.src = param.imgpath;

            img.onload = () => {

              ctx.drawImage(img, 0, 0, param.size.canvas_w, param.size.canvas_h);

              wx.canvasToTempFilePath({

                destWidth: param.size.canvas_w,

                destHeight: param.size.canvas_h,

                canvas: canvas,

                fileType: "jpg",

                quality: 0.3,

                success: function (res) {

                  if (param.successparam.success(res);

                },

                fail: function (res) {

                  if (param.failparam.fail(res);

                }

              }, param._this);

            }

我想要的是文件大小变小,结果变大了。改变quality,文件大小也没有变化。

回答关注问题邀请回答
收藏

3 个回答

  • 社区技术运营专员--阳光
    社区技术运营专员--阳光
    2021-08-25

    你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2021-08-25
    有用
    回复 2
    • 何一平
      何一平
      2021-08-26
      这个问题只有我遇到吗?
      2021-08-26
      回复
    • 何一平
      何一平
      2021-08-26
      我在网上看了其他的案例,也想微信的GG可能忙不到这一块,我准备放弃前台压缩,由服务器JAVA来做这个功能。
      2021-08-26
      回复
  • 凌夭
    凌夭
    2021-09-15

    遇到同样的问题,


    2021-09-15
    有用 1
    回复
  • Aki
    Aki
    2022-01-07

    我刚开始没有设置这个的时候,图片也是放大了的;要设置好这个canvas 的宽高就可以了

    2022-01-07
    有用
    回复
登录 后发表内容