【问题标题】:HTML2Canvas unable convert div to image with large imagesHTML2Canvas 无法将 div 转换为带有大图像的图像
【发布时间】:2016-04-27 15:16:23
【问题描述】:

我正在使用 HTML2CANVAS 将 Div 捕获为图像并保存到数据库。

它适用于 1-2 kb 的图像和文本。 但无法捕获多个大图像,假设为 200-300 kb。

如果有人遇到此问题并有解决方案,请帮助我。

这是我的代码:

<div id="target">

                <page size="A4"> 
<div id="wrapper" >
  <div id="header">
  <div class="text">
  <span id="rent">This Space for rent/price</span>
    <h1 id="propAdd">THIS SPACE FOR PROPERTY ADDRESS</h1>
      <h1  id="Data">THIS SPACE FOR DATA</h1>
      </div>
    </div>
  <h1 id="ad">
      This Space For advert heading</h1>
  <div id="content">
    <div class="main"> 
<div id="dvPreview2">
   <img src="images/main-image.jpg" width="550" height="355" />
</div>
       <h1 id="DES">This Space for Property Description or FEATURES</h1>
      <ul>
        <li id="DES1">4 Bedrooms, 3 Bathrooms</li>
        <li id="DES2">Ensuite has double shower & double vanity</li>
        <li id="DES3">Massive open plan living with cathedral ceilings</li>
        <li id="DES4">Resort-style pool deck area</li>
        <li id="DES5">Gourmet kitchen with butlers pantry</li>
        <li id="DES6">Fully ducted air-con</li>
        <li id="DES7">Triple lock-up garage with remote</li>
        <li id="DES8">Outside pets considered on application</li>
      </ul>
    </div>
    <div class="sidebar">
        <div id="dvPreview3">
 <img src="images/sidebar-image-01.png" width="159" height="100" />
</div>
          <div id="dvPreview4">
 <img src="images/sidebar-image-02.png" width="159" height="100" />
</div>
        
          <div id="dvPreview5">
 <img src="images/sidebar-image-03.png" width="159" height="100" />
</div>     
 <p id="dvPreview1" >
 <img src="images/agent-logo.png" style="width:80px;" /></p>
        <p style="margin-top:0 !important;">
Phone: <span id="phone">+49 30 47373795</span><br />
E-mail: <span id="mail">Ject41@cuvox.de</span><br />
          <span id="web">www.abc.in</span>
      </p>

    </div>
     
      <div class="clear"></div>
      <div class="slid-img">
           <div id="dvPreview6" >
 <img src="images/image-01.jpg" width="159" height="100" />
</div>
           <div id="dvPreview7"  >
<img src="images/image-02.jpg" width="159" height="100" />
</div>
           <div id="dvPreview8"  >
  <img src="images/main-image.jpg" width="159" height="100" />
</div>
      
          <div id="dvPreview9" >
  <img src="images/sidebar-image-01.png" width="159" height="100" style="float:right; margin:0" />
</div> 
     
     
      </div>
    <div class="clear"></div>
  </div>
  
   <div class="affiliation-logo">
      <ul>
      <li><div id="dvPreview10" style="width:32px;"><img src="images/facebook-icon.png" width="32" /></div></li>
      <li><div id="dvPreview11" style="width:32px;"><img src="images/twitter-icon.png" width="32" /></div></li>
      <li><div id="dvPreview12" style="width:32px;"><img src="images/linkedin-icon.png" width="32" /></div></li>
      <li><div id="dvPreview13" style="width:32px;"><img src="images/youtube-icon.png" width="32" /></div></li>
      <li><div id="dvPreview14" style="width:32px;"><img src="images/google-plus-icon.png" width="32" /></div></li>
      </ul>
      </div>
      <div class="clear"></div>
  <div id="footer">
    <div class="agent-section">
     <%-- <div class="agent-name"></div>--%>
          <span class="agent-name" style="float:left"> Disclaimer : </span>
      <div id="DIS" style="max-width:550px; float:left; margin-left:10px; line-height:18px; font-size:14px;"></div>
    </div>
    
    
<div class="clear"></div>
  </div>
  </div>    
</page>

            </div>
       
       <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script>
        <script type="text/javascript">

            $(document).ready(function () {
                $('#add_button').click(function () {
                    html2canvas($('#target'), {
                        onrendered: function (canvas) {
                            var img = canvas.toDataURL()

                            img = img.replace('data:image/png;base64,', '');
                            //alert(img);
                            //window.open(img);
                            $.ajax({

                                type: 'POST',

                                url: 'Design1.aspx/UploadImage',

                                data: '{ "imageData" : "' + img + '" }',

                                contentType: 'application/json; charset=utf-8',

                                dataType: 'json',
                                success: function (msg) {

                                    //alert('Image saved successfully !');

                                }

                            });
                        }
                    });
                });
            });

  </script>        

【问题讨论】:

  • 做一个例子或展示你当前的工作。
  • 我通过编辑问题在我的问题中分享了我的代码。请检查并指导我..
  • 如果我从页面中删除所有图像,那么它工作正常。
  • 我刚刚测试过,遇到了和你一样的问题。可能是这个框架中的一个错误。

标签: html2canvas


【解决方案1】:

在第 65 行的 Html2Canvas.js 文件中

更改以下行 /* 最高正符号 32 位浮点值 / /maxInt = 2147483647, // 又名。 0x7FFFFFFF 或 2^31-1

如下 maxInt = Number.MAX_VALUE,

【讨论】:

    【解决方案2】:

    诡计。 设置你的标签,高度是输出图像大小的两倍。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-30
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      • 2019-09-29
      • 2013-08-03
      相关资源
      最近更新 更多