繁体   English   中英

合并base64图像

[英]Merge base64 images

我有几层KineticJS画布,它们相互叠放。 我希望能够将其导出为PNG。 我可以使用.toDataURL()函数导出每个图层,但我希望将它们全部作为一个图像。

有没有一种方法可以合并所有base64字符串?

@apsillers有一个正确的想法-将每个图像彼此合并并导出最终的合成图像。

KineticJS具有导出组合在一起的所有图层的快捷方式: stage.toDataURL().

stage.toDataURL会将其所有层的组合导出到dataUrl。

警告:与所有画布图像导出一样,您必须确保所有图像都符合CORS。

这是示例代码:

var stage = new Kinetic.Stage({
    container: 'container',
    width: 400,
    height: 400
});
var layer1 = new Kinetic.Layer();
stage.add(layer1);
var layer2 = new Kinetic.Layer();
stage.add(layer2);


var img1=new Image();
img1.onload = function() {
    var image1 = new Kinetic.Image({
      x: 0,
      y: 0,
      image: img1,
      width: 100,
      height: 100
    });
    layer1.add(image1);
    layer1.draw();
}
img1.src="yourCORScompliantImage1.png";

var img2=new Image();
img2.onload = function() {
    var image2 = new Kinetic.Image({
      x: 0,
      y: 0,
      image: img2,
      width: 100,
      height: 100
    });
    layer2.add(image2);
    layer2.draw();
}
img2.src="yourCORScompliantImage2.png";

$("#export").click(function(){
        stage.toDataURL({
          callback: function(dataUrl) {
              window.open(dataUrl);
          }
        });
});

你可以使svg包含

<image width="100" height="100" xlink:href="data:image1/png;base64,...">
<image width="100" height="100" xlink:href="data:image2/png;base64,...">
<image width="100" height="100" xlink:href="data:image3/png;base64,...">
<image width="100" height="100" xlink:href="data:image4/png;base64,...">

将是4层SVG

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM