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

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

 更新時(shí)間:2024年01月18日 09:24:53   作者:失眠時(shí)間  
關(guān)于圖片下載問(wèn)題,不同的瀏覽器,需要兼容的下載方式,這篇文章主要給大家介紹了關(guān)于js圖片下載方式的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(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 污染問(wèn)題
  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"); // 生成一個(gè)a元素
    let event = new MouseEvent("click"); // 創(chuàng)建一個(gè)單擊事件
    a.download = name || "pic"; // 設(shè)置圖片名稱
    a.href = url; // 將生成的URL設(shè)置為a.href屬性
    a.dispatchEvent(event); // 觸發(fā)a的單擊事件
  }
  //將資源鏈接賦值過(guò)去,才能觸發(fā)image.onload 事件
  image.src = imgsrc
}

總結(jié) 

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

相關(guān)文章

最新評(píng)論

都昌县| 通城县| 浏阳市| 贵溪市| 外汇| 右玉县| 江津市| 会东县| 大安市| 高平市| 雷山县| 平安县| 库伦旗| 洛阳市| 浠水县| 光山县| 甘德县| 三原县| 德州市| 湟中县| 翼城县| 咸丰县| 寿阳县| 盱眙县| 平定县| 清原| 铁岭市| 徐汇区| 宝兴县| 衡阳市| 中西区| 石渠县| 柳江县| 宾阳县| 柏乡县| 个旧市| 驻马店市| 邢台市| 桂东县| 合水县| 莱州市|