最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js圖片下載方式集合(附詳細(xì)代碼)

 更新時間:2024年01月18日 09:24:53   作者:失眠時間  
關(guān)于圖片下載問題,不同的瀏覽器,需要兼容的下載方式,這篇文章主要給大家介紹了關(guān)于js圖片下載方式的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、文件流格式下載

創(chuàng)建 a 標(biāo)簽下載文件流格式圖片

/**
 * 創(chuàng)建 <a> 標(biāo)簽下載文件流格式圖片
 * @param file 
 * @param fileName 
 */
export const downloadFile = (file: string, fileName?: string) => {
  const blob = new Blob([file]);
  const fileReader = new FileReader();
  fileReader.readAsDataURL(blob);
  fileReader.onload = (e) => {
    const a = document.createElement("a");
    a.download = fileName || '0123456.PNG';
    a.href = e.target?.result as string;
    document.body.appendChild(a);
    a.click();
    document.body.removeChild(a);
  };
}

文件流格式還可以轉(zhuǎn)為Base64格式之后,再以鏈接格式下載

轉(zhuǎn)換方式如下

export const downloadFileUrl = (file: Blob) => {
  const blob = new Blob([file]);
  const fileReader = new FileReader();
  fileReader.readAsDataURL(blob);
  fileReader.onload = (e) => {
    const url = e.target?.result as string;
    downloadImage(`data:image/png;Base64,${url}`, 'testefd')
  };
}

二、鏈接格式下載

/**
 * 根據(jù)圖片路徑下載
 * @param imgsrc 圖片路徑
 * @param name 下載圖片名稱
 * @param type 格式圖片,可選,默認(rèn)png ,可選 png/jpeg
 */
export const downloadImage = (imgsrc: string, name: string, type: string = 'png') => {
  let image = new Image();
  // 解決跨域 Canvas 污染問題
  image.setAttribute("crossOrigin", "anonymous");
  image.onload = function () {
    let canvas = document.createElement("canvas");
    canvas.width = image.width;
    canvas.height = image.height;
    let context = canvas.getContext("2d");
    context?.drawImage(image, 0, 0, image.width, image.height);
    let url = canvas.toDataURL(`image/${type}`); //得到圖片的base64編碼數(shù)據(jù)
    let a = document.createElement("a"); // 生成一個a元素
    let event = new MouseEvent("click"); // 創(chuàng)建一個單擊事件
    a.download = name || "pic"; // 設(shè)置圖片名稱
    a.href = url; // 將生成的URL設(shè)置為a.href屬性
    a.dispatchEvent(event); // 觸發(fā)a的單擊事件
  }
  //將資源鏈接賦值過去,才能觸發(fā)image.onload 事件
  image.src = imgsrc
}

總結(jié) 

到此這篇關(guān)于js圖片下載方式的文章就介紹到這了,更多相關(guān)js圖片下載方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

青神县| 苍溪县| 杭州市| 长海县| 民权县| 塔河县| 北流市| 乌海市| 扬州市| 莱州市| 公安县| 南澳县| 新蔡县| 田阳县| 岑溪市| 湘潭市| 昆明市| 白玉县| 得荣县| 青州市| 海安县| 元氏县| 天峻县| 定州市| 伊春市| 康马县| 江阴市| 尼木县| 新民市| 满城县| 札达县| 宁海县| 合川市| 衡水市| 许昌县| 霍山县| 芦山县| 浑源县| 衡山县| 仪陇县| 扎赉特旗|