ホームページ  >  記事  >  ウェブフロントエンド  >  Canvasを使用して画像ダウンロード機能を実装するHTML5の詳細例

Canvasを使用して画像ダウンロード機能を実装するHTML5の詳細例

巴扎黑
巴扎黑オリジナル
2017-09-02 10:01:553175ブラウズ

この記事では主に、キャンバスを使用して画像ダウンロード機能を実装するためのサンプルコードを紹介します。必要な方は参考にしてください。

最近のプロジェクトでは、画像をダウンロードする機能が必要です。 (以下に示すように) 実装されました

最初は、a タグの download 属性を使用してダウンロードすることを検討しました:


<a href="图片src" download="下载海报">
下载海报
</a>

しかし、テストを通じて、Safari ではダウンロードされたファイルに拡張子を付けることができないことがわかりました。そこで、考えを変えて、処理にキャンバスを使用する必要がありました。

1. 画像にcrossOrigin='anonymous'を追加して、画像のクロスドメイン属性を設定する必要があります


img.crossOrigin = &#39;anonymous&#39;;

2. toDataURLを使用して画像をbase64形式に変換します


canvas.toDataURL("image/png")

3.ダウンロードをトリガーするシミュレートされたクリック イベント


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

完全なコード:


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

以上がCanvasを使用して画像ダウンロード機能を実装するHTML5の詳細例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。