<tfoot id='0JQwH'></tfoot>

        <i id='0JQwH'><tr id='0JQwH'><dt id='0JQwH'><q id='0JQwH'><span id='0JQwH'><b id='0JQwH'><form id='0JQwH'><ins id='0JQwH'></ins><ul id='0JQwH'></ul><sub id='0JQwH'></sub></form><legend id='0JQwH'></legend><bdo id='0JQwH'><pre id='0JQwH'><center id='0JQwH'></center></pre></bdo></b><th id='0JQwH'></th></span></q></dt></tr></i><div id='0JQwH'><tfoot id='0JQwH'></tfoot><dl id='0JQwH'><fieldset id='0JQwH'></fieldset></dl></div>
        <legend id='0JQwH'><style id='0JQwH'><dir id='0JQwH'><q id='0JQwH'></q></dir></style></legend>

        <small id='0JQwH'></small><noframes id='0JQwH'>

          <bdo id='0JQwH'></bdo><ul id='0JQwH'></ul>
      1. 二进制数组到画布

        时间:2023-06-21

        <tfoot id='QOieR'></tfoot>
        1. <legend id='QOieR'><style id='QOieR'><dir id='QOieR'><q id='QOieR'></q></dir></style></legend>

            <small id='QOieR'></small><noframes id='QOieR'>

          • <i id='QOieR'><tr id='QOieR'><dt id='QOieR'><q id='QOieR'><span id='QOieR'><b id='QOieR'><form id='QOieR'><ins id='QOieR'></ins><ul id='QOieR'></ul><sub id='QOieR'></sub></form><legend id='QOieR'></legend><bdo id='QOieR'><pre id='QOieR'><center id='QOieR'></center></pre></bdo></b><th id='QOieR'></th></span></q></dt></tr></i><div id='QOieR'><tfoot id='QOieR'></tfoot><dl id='QOieR'><fieldset id='QOieR'></fieldset></dl></div>
                  <tbody id='QOieR'></tbody>
                • <bdo id='QOieR'></bdo><ul id='QOieR'></ul>
                  本文介绍了二进制数组到画布的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我想将 jpeg 图像从二进制数组加载到画布(目前正在尝试使用 Uint8Array).我一直在网上寻找解决方案,但我能找到的只是将数组转换为 base64,然后加载效率不高的图像.

                  I'm would like to load a jpeg image to a canvas from a binary array (currently trying with an Uint8Array). I've been looking all over the net for a solution but all I could find is converting the array to base64 and then loading the image which is not very efficient.

                  这是我用于加载图像的代码:

                  Here is my code used for loading the image:

                  <!DOCTYPE html>
                  <html>
                  <head>
                  </head>
                  <body>
                  <canvas id="MainImage" width="756" height="600">Your browser doesn't support html5</canvas>
                  <script type="text/javascript">
                  _Request = new XMLHttpRequest();
                  var url = "http://localhost/AAA/S.jpg";
                  try {
                     _Request.onreadystatechange = function() {
                        if (_Request.readyState == 4 && _Request.status == 200) {
                           var downloadedBuffer = _Request.response;
                           if (downloadedBuffer) {
                              var binaryByteArr = new Uint8Array(downloadedBuffer);
                           }
                        }
                        _Request.open('GET', url, true);
                        _Request.responseType = 'arraybuffer';
                        _Request.send();
                  } catch (e) {
                  }
                  </script>
                  </body>
                  </html>
                  

                  我想将此处理后的图像数组加载到画布上.

                  I would like to load this processed array of the image to a canvas.

                  这只是一个示例,我的原始代码接收一个二进制数组,其中包含多个 jpeg 图像在一个数组中,因此其他方法不起作用.

                  This is just a sample, my original code receives a binary array with multiple jpeg images in a single array so other methods wont work.

                  任何帮助将不胜感激

                  推荐答案

                  假设您有一种方法可以将二进制数组拆分为每个图像的数组(通过已知长度或使用 JPEG 标头来识别新图像),您可以使用 Blob 和一个对象 URL:

                  Assuming you have a way of splitting the binary array into arrays per image (either by a known length or using the JPEG header to identify the new image) you can use Blob and an object URL:

                  示例(基于 这个来自 MDN 的示例):

                  var imageData = GetTheTypedArraySomehow();
                  var blob = new Blob([imageData], {type: "image/jpeg"});
                  var url = URL.createObjectURL(blob);
                  

                  现在您可以将图像的 url 设置为 src::

                  Now you can set the url as src for an image::

                  var img = new Image();
                  img.onload = function() {
                      /// draw image to canvas
                      context.drawImage(this, x, y);
                  }
                  img.src = url;
                  

                  这篇关于二进制数组到画布的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:鼠标点击在画布上画一个圆圈 下一篇:HTML5、JavaScript 和在画布中绘制多个矩形

                  相关文章

                  <tfoot id='R9bLh'></tfoot>

                      <bdo id='R9bLh'></bdo><ul id='R9bLh'></ul>

                      <small id='R9bLh'></small><noframes id='R9bLh'>

                    1. <i id='R9bLh'><tr id='R9bLh'><dt id='R9bLh'><q id='R9bLh'><span id='R9bLh'><b id='R9bLh'><form id='R9bLh'><ins id='R9bLh'></ins><ul id='R9bLh'></ul><sub id='R9bLh'></sub></form><legend id='R9bLh'></legend><bdo id='R9bLh'><pre id='R9bLh'><center id='R9bLh'></center></pre></bdo></b><th id='R9bLh'></th></span></q></dt></tr></i><div id='R9bLh'><tfoot id='R9bLh'></tfoot><dl id='R9bLh'><fieldset id='R9bLh'></fieldset></dl></div>
                    2. <legend id='R9bLh'><style id='R9bLh'><dir id='R9bLh'><q id='R9bLh'></q></dir></style></legend>