canvas生成自定义大小图片

34 篇文章 2 订阅
2 篇文章 0 订阅

场景:比如移动端签名,一张canvas画布,在任意位置书写之后,生成一张图片,如果这种图片要放到某一个签名的位置会显的特别大,我们来解决这个问题

一、生成canvas图片

通过 canvas.toDataURL('image/png', 1) 生成一张base64的canvas图片,也可以是你自己的其他图片

 

二、将原图转换为自定义大小的图片

/**
   * resize 生成自定义大小的图片
   * @param {String} datas 图片原文件
   * @param {Number} wantedWidth 修改后的宽度
   * @param {Number} wantedHeight 修改后的高度
   * @returns 
   */
 function resizedataURL(datas, wantedWidth, wantedHeight){
    return new Promise(async function(resolve,reject){
      var img = document.createElement('img');
      img.onload = function()
      {        
        var canvas = document.createElement('canvas');
        var ctx = canvas.getContext('2d');
        canvas.width = wantedWidth;
        canvas.height = wantedHeight;
        ctx.drawImage(this, 0, 0, wantedWidth, wantedHeight);
        var dataURI = canvas.toDataURL();
        resolve(dataURI);
      };
      img.src = datas;
    })
  }

三、调用方法 

// 生成一张大小为 255 * 250 的图片
var newDataUri = await this.resizedataURL(canvas.toDataURL('image/png', 1), 255, 250);
var encodeImages = encodeURI(newDataUri);

最后encodeImages即为你自定义大小的图片文件

 

交流

1、QQ群:可添加qq群共同进阶学习: 进军全栈工程师疑难解  群号:   856402057

2、公众号:公众号「进军全栈攻城狮」 ,对前端技术保持学习爱好者。我会经常分享自己所学所看的干货,在进阶的路上,共勉!

                                                  

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值