canvas生成自定义大小图片

简介: canvas生成自定义大小图片

场景:比如移动端签名,一张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 即为你自定义大小的图片文件

相关文章
|
2月前
|
前端开发
canvas图片操作
canvas图片操作
10 0
|
10月前
|
前端开发 数据安全/隐私保护 容器
|
11月前
|
前端开发 小程序
小程序使用canvas制作beas64图片
小程序使用canvas制作beas64图片
76 0
|
3月前
|
前端开发 小程序
微信小程序canvas画布绘制base64图片并保存图片到相册中
微信小程序canvas画布绘制base64图片并保存图片到相册中
148 0
|
1月前
|
前端开发
width展示的是在Canvas画布上的字符串‘Hello‘的宽度
width展示的是在Canvas画布上的字符串‘Hello‘的宽度
|
2月前
|
前端开发
canvas与CreateJS实现图片动画
canvas与CreateJS实现图片动画
18 0
|
3月前
|
前端开发 算法 计算机视觉
用canvas消除锯齿的方式
用canvas消除锯齿的方式
115 0
|
3月前
|
前端开发
|
3月前
|
前端开发 小程序
微信小程序canvas画布绘制;canvas画布图片保存
微信小程序canvas画布绘制;canvas画布图片保存
65 0
|
前端开发 JavaScript
canvas:绘制视频封面
canvas:绘制视频封面
79 0
canvas:绘制视频封面