vue canvas 把两个一样大小的base64 4图片合并成一张上下或者左右图片

一、技术路线

    canvas

  1. canvas的左上角位置为(0, 0)

  2. ctx.drawImage(图片对象, x位置, y位置)

  3. ctx.drawImage(图片对象, x位置, y位置, 宽度, 高度)

  4. ctx.drawImage(图片对象, 图像裁剪的x位置, 图像裁剪的y位置, 裁剪的宽度, 裁剪的高度, x位置, y位置, 宽度, 高度)

  5. 使用toDataURL()方法获取合并后的图片的base64字符串。

二、代码实现

function mergeImg(){

// 假设 base64Image1 和 base64Image2 是两个等大小的base64图片字符串

var base64Image1 = 'data:image/png;base64,...'; // 替换为实际的base64字符串

var base64Image2 = 'data:image/png;base64,...'; // 替换为实际的base64字符串

// 创建图片对象并加载Base64数据

var img1 = new Image();

img1.onload = function() {

   var img2 = new Image();

   img2.onload = function() {

       // 创建Canvas元素

       const canvas = document.createElement("canvas");

        const ctx = canvas.getContext("2d");

       // 设置Canvas的宽高

       canvas.width = img1.width;

       //左右  看需求啊

       // canvas.height = img1.height ;

       //上下  看需求啊

       canvas.height = img1.height + img2.height;

     

         // 绘制第一张图片

         ctx.drawImage(img1, 0, 0);

         // 绘制第二张图片(在第一张图片的下方)看需求啊

         ctx.drawImage(img2, 0, img1.height);

         // 绘制第二张图片(在第一张图片的右方)看需求啊

         //ctx.drawImage(img2, img1.width, 0);

         // 合并后的图片base64

         var newImg = new Image();

         newImg.src = canvas.toDataURL("image/png");

         // 或者直接下载图片

         let a = document.createElement("a");

         a.href = newImg.src; //得到图片的base64编码数据

         a.download = "课题甘特图.png";

         a.click();

};

img2.src = base64Image2;

};

img1.src = base64Image1;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值