• <tfoot id='qUiNF'></tfoot>

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

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

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

        • <bdo id='qUiNF'></bdo><ul id='qUiNF'></ul>

        如何在使用“toDataURL"转换画布时设置图像质量?方法?

        How to set the image quality while converting a canvas with the quot;toDataURLquot; method?(如何在使用“toDataURL转换画布时设置图像质量?方法?)
          <tbody id='0h35b'></tbody>
        <legend id='0h35b'><style id='0h35b'><dir id='0h35b'><q id='0h35b'></q></dir></style></legend>

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

          1. <tfoot id='0h35b'></tfoot>
            <i id='0h35b'><tr id='0h35b'><dt id='0h35b'><q id='0h35b'><span id='0h35b'><b id='0h35b'><form id='0h35b'><ins id='0h35b'></ins><ul id='0h35b'></ul><sub id='0h35b'></sub></form><legend id='0h35b'></legend><bdo id='0h35b'><pre id='0h35b'><center id='0h35b'></center></pre></bdo></b><th id='0h35b'></th></span></q></dt></tr></i><div id='0h35b'><tfoot id='0h35b'></tfoot><dl id='0h35b'><fieldset id='0h35b'></fieldset></dl></div>
                  <bdo id='0h35b'></bdo><ul id='0h35b'></ul>
                  本文介绍了如何在使用“toDataURL"转换画布时设置图像质量?方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我想在将画布元素编码为 jpg 时设置质量因子.

                  I want to set the quality factor when I encode a canvas element to jpg.

                  var data = myCanvas.toDataURL( "image/jpeg" );
                  

                  它没有给我一个高质量的选择.我可以使用其他库吗?

                  It does not give me a quality option. Is there an alternative library I can use?

                  相关:不同浏览器使用的默认质量设置是什么?

                  Related: what is the default quality setting used by the different browsers?

                  推荐答案

                  函数的第二个参数是质量.范围从 0.0 到 1.0

                  The second argument of the function is the quality. It ranges from 0.0 to 1.0

                  canvas.toDataURL(type,quality);
                  

                  这里你有扩展信息

                  而且我认为一旦转换后就不可能知道图像的质量.正如您在此 feedle 上看到的,在控制台上打印值时获得的唯一信息是类型和图像代码本身.

                  And I don't think it's possible to know the quality of the image once is converted. As you can see on this feedle the only information you get when printing the value on the console is the type and the image code itself.

                  这是我制作的一段代码,用于了解浏览器使用的质量的默认值.

                  Here's a snippet of code I made to know the default value of the quality used by the browser.

                      var c=document.getElementById("myCanvas");
                      var ctx=c.getContext("2d");
                      ctx.fillStyle="#FF0000";
                      ctx.fillRect(0,0,150,75);
                  
                      var url = c.toDataURL('image/jpeg');
                      var v = 0
                      for(var i = 0; i < 100; i++ ){
                  
                          v += 0.01;
                          x = parseFloat((v).toFixed(2))
                          var test = c.toDataURL('image/jpeg', x);
                  
                          if(test == url){
                              console.log('The default value is: ' + x);
                          }
                      }
                  

                  基本上我认为图像本身的变化会反映在base64字符串上.所以代码只是在 toDataURL() 方法上尝试所有可能的值,并将结果字符串与默认字符串进行比较.它似乎有效.对于铬,我得到 0.92.

                  Basically I thought that the change on the image itself would be reflected on the base64 string. So the code just try all the possible values on the toDataURL() method and compares the resulting string with the default one. And it seems to work. For chromium I get 0.92.

                  这里是小提琴的工作示例.

                  这篇关于如何在使用“toDataURL"转换画布时设置图像质量?方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  How does object-fit work with canvas element?(对象适合如何与画布元素一起使用?)
                  How to make rooftext effect and valley text effect in HTML5 (or Fabric.js)(如何在 HTML5(或 Fabric.js)中制作屋顶文字效果和山谷文字效果)
                  Draw border around nontransparent part of image on canvas(在画布上的图像不透明部分周围绘制边框)
                  dragging and resizing an image on html5 canvas(在 html5 画布上拖动图像并调整其大小)
                  What#39;s the difference between a boolean as primitive and a boolean as property of an object?(作为原始对象的布尔值和作为对象属性的布尔值有什么区别?)
                  I want to do animation of an object along a particular path(我想沿特定路径对对象进行动画处理)
                  <tfoot id='BbHHn'></tfoot>
                  1. <i id='BbHHn'><tr id='BbHHn'><dt id='BbHHn'><q id='BbHHn'><span id='BbHHn'><b id='BbHHn'><form id='BbHHn'><ins id='BbHHn'></ins><ul id='BbHHn'></ul><sub id='BbHHn'></sub></form><legend id='BbHHn'></legend><bdo id='BbHHn'><pre id='BbHHn'><center id='BbHHn'></center></pre></bdo></b><th id='BbHHn'></th></span></q></dt></tr></i><div id='BbHHn'><tfoot id='BbHHn'></tfoot><dl id='BbHHn'><fieldset id='BbHHn'></fieldset></dl></div>
                      <bdo id='BbHHn'></bdo><ul id='BbHHn'></ul>

                      <legend id='BbHHn'><style id='BbHHn'><dir id='BbHHn'><q id='BbHHn'></q></dir></style></legend>

                          <tbody id='BbHHn'></tbody>

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