reactjs - html2canvas border image issue -
i using html2canvas library take screenshot of html view.
but background-image failed load. getting error message error loading background:
here jsfiddle.
window.takescreenshot = function() { html2canvas(document.getelementbyid("target"), { onrendered: function (canvas) { document.body.appendchild(canvas); }, usecors:true, logging:true, allowtaint:true }); } #target{ width:300px; height:160px; background:lightblue; color:#fff; padding:10px; background-image: url(https://static.pexels.com/photos/20974/pexels-photo.jpg); background-repeat:no-repeat; background-position:center center; -o-background-size: 100%; -moz-background-size: 100%; -webkit-background-size: 100%; background-size: 100%; height: 100%; } #borderimg1 { border: 10px solid transparent; padding: 15px; -webkit-border-image: url(https://www.w3schools.com/cssref/border.png) 30 round; /* safari 3.1-5 */ -o-border-image: url(https://www.w3schools.com/cssref/border.png) 30 round; /* opera 11-12.1 */ border-image: url(https://www.w3schools.com/cssref/border.png) 30 round; } #borderimg2 { border: 10px solid transparent; padding: 15px; -webkit-border-image: url(https://www.w3schools.com/cssref/border.png) 30 stretch; /* safari 3.1-5 */ -o-border-image: url(https://www.w3schools.com/cssref/border.png) 30 stretch; /* opera 11-12.1 */ border-image: url(https://www.w3schools.com/cssref/border.png) 30 stretch; } <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.min.js"></script> <button onclick="takescreenshot()">to image</button> <div id="target"> <p>the border-image property specifies image used border around element:</p> <p id="borderimg1">here, middle sections of image repeated create border.</p> <p id="borderimg2">here, middle sections of image stretched create border.</p> <p>here original image:</p><img src="https://www.w3schools.com/cssref/border.png"> <p><strong>note:</strong> internet explorer 10, , earlier versions, not support border-image property.</p> </div>
for internet security reasons, trying use image different domain in canvas causes problems. there 2 html2canvas options, usecors , proxy, designed try around problem.
you have create proxy in project , use html2canvas proxy option.
click here view sample proxy created in different programming languages.
usage of proxy in html2canvas(c# example)
html2canvas(document.body, { "logging": true, //enable log (use web console errors , warings) "proxy":"html2canvasproxy.ashx", "onrendered": function(canvas) { var img = new image(); img.onload = function() { document.body.appendchild(img); }; img.error = function() { if(window.console.log) { window.console.log("not loaded image canvas.todataurl"); } else { alert("not loaded image canvas.todataurl"); } }; img.src = canvas.todataurl("image/png"); } });
Comments
Post a Comment