Heim  >  Artikel  >  Web-Frontend  >  Detailliertes Beispiel für HTML5 mit Canvas zur Implementierung der Bild-Download-Funktion

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

巴扎黑
巴扎黑Original
2017-09-02 10:01:553233Durchsuche

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>

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;;

2 um das Bild in das Base64-Format zu konvertieren


canvas.toDataURL("image/png")

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);

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';
}

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!

Stellungnahme:
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