簡體   English   中英

javascript將圖像轉換為數據url

[英]javascript convert image to data url

使用 javascript 我將 jpg 轉換為數據 url(我得到一個字符串,如 data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQAB...),我得到的 url 在 Firefox 中用作 href,但在 Chrome 中不起作用. 你有什么建議嗎? 也許 Chrome 有限制?

編輯:

  1. 我在具有下載屬性的錨點中使用數據 url 作為 href(鏈接應該強制打開/下載彈出窗口)

  2. 如果我傳遞一個較小的圖像,它可以在 Chrome 上運行

你可以在這里看到一個例子:

https://jsfiddle.net/ex180Lyu/

<a href="data:image/jpeg;base64,/9j/4AAQSkZJR..." download="image.jpg">CLICK</a>

它在 Firefox 中有效,但在 Chrome 中無效

Chrome 在新窗口中停止支持數據 URI。 這是報告的問題

https://github.com/piskelapp/piskel/issues/729

如果你需要測試,你可以這樣做,它支持任何瀏覽器

<img src="data:image/jpeg;base64,/4AAQSkZJRgABAQAAAQAB...." />

正如 Nithin 所說,Chrome 刪除了導航到 data-uris 的可能性。

但是你可以像這樣在<img>標簽內的任何網頁上設置它:

 <img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQAB..." alt="Alt text for image"/>

您還可以顯示這樣的下載鏈接:

<a href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQAB..." download="image.jpg">image</a>

如果圖像太大而無法嘗試此方法,您可以隨時將其復制到畫布上。 我已經成功處理了高達 20MB 的圖像。

基本上你直接將圖像復制到畫布上:

const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
const img = new Image();

img.src = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQAB..."
img.onload = () => {
  canvas.width = img.naturalWidth;
  canvas.height = img.naturalHeight;
  ctx.drawImage(img, 0, 0);
}

完整代碼在這里

暫無
暫無

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

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