簡體   English   中英

在JavaScript中根據img src路徑下載圖像並將其轉換為File對象或Blob

[英]Download and convert image based on img src path to File object or Blob in JavaScript

假設我的頁面中有一個圖像標簽:

<img src="https://i.picsum.photos/id/949/200/300.jpg" alt="foo" />
  • src 路徑是絕對路徑地址而不是數據 URI
  • src 路徑可能來自其他站點 (CORS)

如何在沒有 CORS 問題的情況下下載該圖像並在 vanilla JavaScript 中轉換 File 對象或二進制文件?

您可以轉換為 base64 或使用 blob

 jQuery.ajax({ url: 'https://i.picsum.photos/id/949/200/300.jpg', xhrFields:{ responseType: 'blob' }, success: function(data){ var blobData = data; var url = window.URL || window.webkitURL; var src = url.createObjectURL(data); $('#img').attr("src", src); } });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <body> <img id='img'> </body>

請嘗試使用此代碼將圖像源路徑轉換為文件對象:

function getDataUri(url, callback)
{
    var image = new Image();
    image.onload = function () {
        var canvas = document.createElement('canvas');
        canvas.width = this.naturalWidth; 
        canvas.height = this.naturalHeight;
        canvas.getContext('2d').drawImage(this, 0, 0);       
       callback(canvas.toDataURL('image/png').replace(/^data:image\/(png|jpg);base64,/, ''));
        callback(canvas.toDataURL('image/png'));
   };

   image.src = url;
}

getDataUri('/logo.png', function(dataUri) {

});

我希望上面的代碼對你有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM