20

html2canvas を使用してスクリーンショットを撮ろうとしています:

var body = document.getElementById("body")
$(body).html2canvas({onrendered: function( canvas ) {  
     var urlData = canvas.toDataURL("image/jpeg");  
}});

私の体の背景は透明なので、jpeg のため urlData の背景は黒です (ブラウザのように白ではありません)。
この場合、この動作を修正して背景色を白にするにはどうすればよいですか?

4

8 に答える 8

20

私は一時的に変更しました: _html2canvas.Util.isTransparent から

_html2canvas.Util.isTransparent = function(backgroundColor) {
  return (backgroundColor === "transparent" || backgroundColor === "rgba(0, 0, 0, 0)");
};

_html2canvas.Util.isTransparent = function(backgroundColor) { return (backgroundColor === "transparent" || backgroundColor === "rgba(0, 0, 0, 0)" || backgroundColor === undefined); };

その後、背景パラメーターを設定して html2canvas を呼び出すだけで十分でした:

html2canvas(screenshot_element, {
    background :'#FFFFFF',
    onrendered: function (canvas) {
      .....
    }
  });

私にとっては...未定義の背景を透明と見なすことは理にかなっています。

于 2014-09-15T06:33:05.707 に答える
10

これを試して

var body = document.getElementById("body") 
$(body).html2canvas({background:'#fff', onrendered: function( canvas ) {  
 var urlData = canvas.toDataURL("image/jpeg");  
}});
于 2013-03-17T17:51:04.760 に答える
6

https://stackoverflow.com/a/23928038/1815624

css background-color:#ffffff をテーブルに追加するだけです:)

お役に立てれば

目的のページごとにコンテンツをdivにラップしclass="pdfpage"、cssを次のように設定しましたpdfpage{background:#FFFFFF;}

私がコメントしたように、レンダリングされた要素の背景はすでに白だったので、白に設定する必要があるとは最初は考えていませんでした...しかし、実際には無色でした...

于 2014-08-23T01:22:40.970 に答える
1
var body = document.getElementById("body")
$(body).html2canvas({onrendered: function( canvas ) {  
     var urlData = canvas.toDataURL("image/jpeg");  
},
background: '#fff'});

2 年後ですが、更新されたバージョンでは、このようなパラメーターを受け入れる必要があります。. .

于 2016-08-29T19:14:22.033 に答える