欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js前端技巧之圖片格式轉換(File、Blob、base64)

 更新時間:2023年04月17日 11:08:21   作者:野er  
這篇文章主要給大家介紹了關于js前端技巧之圖片格式轉換(File、Blob、base64)的相關資料,主要記錄一下比較常見的圖片格式(File、Blob、base64)在不同的場景他們之間的相互轉換的方法,需要的朋友可以參考下

一、類型簡介

BLOB(binary large object): 二進制大對象,是一個可以存儲二進制文件的容器。 在計算機中,BLOB常常是數據庫中用來存儲二進制文件的字段類型。

屬性名稱讀/寫描述
size只讀Blob 對象中所包含數據的大?。ㄗ止?jié))。
type只讀一個字符串,表明該Blob對象所包含數據的MIME類型。如果類型未知,則該值為空字符串。例如 “image/png”.

File: File 對象通常是用戶在網頁中的一個<input> 元素上傳文件返回的 FileList 對象,或者是拖放操作返回的 DataTransfer 對象,也可以在瀏覽器中的控制臺中自己創(chuàng)建。

屬性名稱讀/寫描述
name只讀返回文件的名稱.由于安全原因,返回的值并不包含文件路徑 。
type只讀返回 File 對象所表示文件的媒體類型(MIME)。例如 PNG 圖像是 “image/png”.
lastModified只讀number, 返回所引用文件最后修改日期,自 1970年1月1日0:00 以來的毫秒數。
lastModifiedDate只讀Date, 返回當前文件的最后修改日期,如果無法獲取到文件的最后修改日期,則使用當前日期來替代。
size只讀File 對象中所包含數據的大?。ㄗ止?jié))。

base64: Base64是網絡上最常見的用于傳輸8Bit字節(jié)碼的編碼方式之一,Base64就是一種基于64個可打印字符來表示二進制數據的方法。編碼規(guī)則:把3個字節(jié)變成4個字節(jié);每76個字符加一個換行符;最后的結束符也要處理。

二、類型轉換

1. BLOB 與 File

BLOB 轉 File

const file = new File([blob], fileName, { type: fileType, lastModified: Date.now() });

File 轉 BLOB

const blob = URL.createObjectURL(file);

2. BLOB 與 base64

BLOB(url) 轉 base64

const image = new Image();
image.src = imgBlob;
image.onload = () => {
  // 構建canvas節(jié)點
  const canvas = document.createElement('canvas');
  canvas.width = image.width;
  canvas.height = image.height;
  const context = canvas.getContext('2d');
  context.drawImage(image, 0, 0, image.width, image.height);
  // 轉換
  const imgBase64 = canvas.toDataURL();
  console.log(imgBase64);
};

base64 轉 BLOB

// 分割base64
const temp = base64Data.split(','); 
// 獲取類型
const mime = arr[0].match(/:(.*?);/)[1];
// 解碼使用 base-64 編碼的字符串
const raw = window.atob(temp[1]);
const rawLength = raw.length;
// base64文件數據讀取
const uInt8Array = new Uint8Array(rawLength);
for (let i = 0; i < rawLength; i += 1) {
  uInt8Array[i] = raw.charCodeAt(i);
}
const blob = new Blob([uInt8Array], { type: mime });

3. File 與 base64

File 轉 base64

const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function (e) {
  // e.target.result 即為base64結果
  console.log(e.target.result);
};

base64 轉 File

// 分割base64
const arr = base64Data.split(','); 
// 獲取類型
const mime = arr[0].match(/:(.*?);/)[1];
// 解析base字符串
const bstr = atob(arr[1]); 
const n = bstr.length; 
// base64文件數據讀取
const u8arr = new Uint8Array(n);
while (n--) {
  u8arr[n] = bstr.charCodeAt(n);
}
const file =  new File([u8arr], filename, { type: mime });

總結

到此這篇關于js前端技巧之圖片格式轉換(File、Blob、base64)的文章就介紹到這了,更多相關前端圖片格式轉換內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 原生js實現shift/ctrl/alt按鍵的獲取

    原生js實現shift/ctrl/alt按鍵的獲取

    小測試shift、ctrl、alt按鍵的獲取,感興趣的朋友可以參考下哈,希望可以幫助到你
    2013-04-04
  • layui+ssm實現數據表格雙擊編輯更新數據功能

    layui+ssm實現數據表格雙擊編輯更新數據功能

    在使用layui加載后端數據請求時,對數據選項框進行雙擊即可實現數據的輸入編輯更改,本文結合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-12-12
  • webpack打包并將文件加載到指定的位置方法

    webpack打包并將文件加載到指定的位置方法

    下面小編就為大家分享一篇webpack打包并將文件加載到指定的位置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • JavaScript ES6中export、import與export default的用法和區(qū)別

    JavaScript ES6中export、import與export default的用法和區(qū)別

    這篇文章主要給大家介紹了JavaScript ES6中export、import與export default的用法和區(qū)別,文中介紹的非常詳細,相信對大家學習ES6會有一定的幫助,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-03-03
  • 分享8個JavaScript庫可更好地處理本地存儲

    分享8個JavaScript庫可更好地處理本地存儲

    這篇文章主要介紹了分享8個JavaScript庫可更好地處理本地存儲,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • 小發(fā)現之淺談location.search與location.hash的問題

    小發(fā)現之淺談location.search與location.hash的問題

    下面小編就為大家?guī)硪黄“l(fā)現之淺談location.search與location.hash的問題。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • JS Web Flex彈性盒子模型代碼實例

    JS Web Flex彈性盒子模型代碼實例

    這篇文章主要介紹了JS Web Flex彈性盒子模型代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • JavaScript實現拼圖式滑塊驗證功能

    JavaScript實現拼圖式滑塊驗證功能

    滑塊驗證碼是在網站、APP等應用中常見的一種驗證方式,通過按照一定規(guī)則滑動滑塊到指定位置完成驗證,才可以進行下一步操作,本文給大家分享基于JavaScript實現拼圖式滑塊驗證功能,感興趣的朋友一起看看吧
    2022-06-06
  • js判斷生效時間不得大于失效時間的思路及代碼

    js判斷生效時間不得大于失效時間的思路及代碼

    生效時間不得大于失效時間在一些推銷、優(yōu)惠方面還是比較實用的,接下來一起看下詳細的實現代碼,感興趣的朋友可以參考下哈,希望對你有所幫助
    2013-04-04
  • JavaScript中剩余參數語法(Rest Parameters)的使用

    JavaScript中剩余參數語法(Rest Parameters)的使用

    本文主要介紹了JavaScript中剩余參數語法(Rest Parameters)的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-06-06

最新評論