Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将对象的n个图像附加到一个画布_Javascript_Canvas_Html5 Canvas - Fatal编程技术网

Javascript 将对象的n个图像附加到一个画布

Javascript 将对象的n个图像附加到一个画布,javascript,canvas,html5-canvas,Javascript,Canvas,Html5 Canvas,我想将多页文档的照片组合到至少一个dataURL,因为我需要一个图像数据字符串来将其发送到OCR-API 因此,我使用基于此示例的画布: 但是我在html中的画布只显示了一个图像的一小部分,而且来自DataURL的图像数据只显示了这一小部分 HTML <div width=100 height=100 id="canvas" #ocrCanvas> 添加画布 var base64Canvas = [ { src: 'data:image/png;base64,... },

我想将多页文档的照片组合到至少一个dataURL,因为我需要一个图像数据字符串来将其发送到OCR-API

因此,我使用基于此示例的画布:

但是我在html中的画布只显示了一个图像的一小部分,而且来自DataURL的图像数据只显示了这一小部分

HTML

<div width=100 height=100 id="canvas" #ocrCanvas>
添加画布

var base64Canvas = [
   { src: 'data:image/png;base64,... },
   { src: 'data:image/png;base64,... },
   ...
];
    addCanvas() {

      var base64ImagesArray = this.base64Canvas;
      var canvas = document.createElement('canvas');
      var destination = this.ocrCanvas.nativeElement;

      Promise.all(base64ImagesArray.map(imageObj => add2canvas(canvas, imageObj)))
          .then(
            (imageObj) => {
                   destination.appendChild(canvas);
                   var canvasURL = canvas.toDataURL();
                   this.sendDataGoogleOCR(canvasURL)
                 }
          );

      function add2canvas(canvas, imageObj) {
        //console.log(imageObj);
         return new Promise( (resolve, reject) => {
            if (!imageObj || typeof imageObj != 'object') return reject();
            var img = new Image();
            img.onload = function () {
                canvas.getContext('2d')
                      .drawImage(this, imageObj.x || 0, imageObj.y || 0);
                resolve();
            };
            img.src = imageObj.src;
         });
      }
  }

首先,您需要设置输出画布的
宽度
高度
属性。Thx,我通过动态计算画布的高度和宽度以及图像的y位置来解决这个问题