Detailliertes Beispiel für HTML5 mit Canvas zur Implementierung der Bild-Download-Funktion

巴扎黑
Freigeben: 2017-09-02 10:01:55
Original
3243 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich der Beispielcode für die Verwendung von Canvas zum Implementieren der Bild-Download-Funktion in HTML5 vorgestellt. Er ist von großem praktischem Wert.

In einem aktuellen Projekt gibt es eine Funktion Das Herunterladen von Bildern muss implementiert werden (wie unten gezeigt) )

Erwägen Sie zunächst die Verwendung des Download-Attributs des a-Tags zum Herunterladen:


<a href="图片src" download="下载海报">
下载海报
</a>
Nach dem Login kopieren

Aber nachdem ich den Test bestanden hatte, stellte ich fest, dass heruntergeladene Dateien in Safari keine Erweiterungen haben können, also musste ich meine Meinung ändern und Canvas für die Verarbeitung verwenden.

1. Das Bild muss crossOrigin='anonymous' hinzufügen, um das domänenübergreifende Attribut des Bildes festzulegen


img.crossOrigin = &#39;anonymous&#39;;
Nach dem Login kopieren

2 um das Bild in das Base64-Format zu konvertieren


canvas.toDataURL("image/png")
Nach dem Login kopieren

3. Verwenden Sie simulierte Klickereignisse, um Downloads auszulösen


 var save_link = document.createElement(&#39;a&#39;);
     save_link.href = image;
     save_link.download =&#39;测试.png&#39;;
                           
 var clickevent = document.createEvent(&#39;MouseEvents&#39;);
     clickevent.initEvent(&#39;click&#39;, true, false);
     save_link.dispatchEvent(clickevent);
Nach dem Login kopieren

Vollständiger Code:


var canvas = $('.canvas');
var cxt = canvas[0].getContext("2d");
function save(){
    var img = new Image();
    img.crossOrigin = &#39;anonymous&#39;;
    img.onload = function(){
        var _w = img.naturalWidth;
        var _h = img.naturalHeight;
        canvas.attr({width:_w,height:_h});
        cxt.drawImage(img,0,0);
        var image = canvas[0].toDataURL("image/png")
        var save_link = document.createElement('a');
        save_link.href = image;
        save_link.download ='测试.png';
                           
       var clickevent = document.createEvent('MouseEvents');
           clickevent.initEvent('click', true, false);
           save_link.dispatchEvent(clickevent);
    };
    img.src = 'http://n.sinaimg.cn/sports/transform/20170825/NZI3-    fykiufe6650492.jpg';
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel für HTML5 mit Canvas zur Implementierung der Bild-Download-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage