国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【js】js前端技巧之圖片格式轉(zhuǎn)換(File、Blob、base64):

這篇具有很好參考價(jià)值的文章主要介紹了【js】js前端技巧之圖片格式轉(zhuǎn)換(File、Blob、base64):。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


一、類型簡(jiǎn)介

BLOB(binary large object): 二進(jìn)制大對(duì)象,是一個(gè)可以存儲(chǔ)二進(jìn)制文件的容器。 在計(jì)算機(jī)中,BLOB常常是數(shù)據(jù)庫(kù)中用來(lái)存儲(chǔ)二進(jìn)制文件的字段類型。

屬性名稱 讀/寫(xiě) 描述
size 只讀 Blob 對(duì)象中所包含數(shù)據(jù)的大小(字節(jié))。
type 只讀 一個(gè)字符串,表明該Blob對(duì)象所包含數(shù)據(jù)的MIME類型。如果類型未知,則該值為空字符串。例如 “image/png”.

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

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

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

二、BLOB 與 File:
【1】BLOB 轉(zhuǎn) File
const file = new File([blob], fileName, { type: fileType, lastModified: Date.now() });
【2】File 轉(zhuǎn) BLOB
const blob = URL.createObjectURL(file);
三、 BLOB 與 base64:
【1】BLOB(url) 轉(zhuǎn) base64
const image = new Image();
image.src = imgBlob;
image.onload = () => {
  // 構(gòu)建canvas節(jié)點(diǎn)
  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);
  // 轉(zhuǎn)換
  const imgBase64 = canvas.toDataURL();
  console.log(imgBase64);
};
【2】base64 轉(zhuǎn) 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文件數(shù)據(jù)讀取
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 });
四、File 與 base64:
【1】File 轉(zhuǎn) base64
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function (e) {
  // e.target.result 即為base64結(jié)果
  console.log(e.target.result);
};
【2】base64 轉(zhuǎn) File
// 分割base64
const arr = base64Data.split(','); 
// 獲取類型
const mime = arr[0].match(/:(.*?);/)[1];
// 解析base字符串
const bstr = atob(arr[1]); 
const n = bstr.length; 
// base64文件數(shù)據(jù)讀取
const u8arr = new Uint8Array(n);
while (n--) {
  u8arr[n] = bstr.charCodeAt(n);
}
const file =  new File([u8arr], filename, { type: mime });
五、案例:

js將file轉(zhuǎn)換為blob,JavaScript,前端,javascript,開(kāi)發(fā)語(yǔ)言文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-732951.html

// 獲取圖片file轉(zhuǎn)base64
fileToBase64(file) {
   return new Promise(function (resolve, reject) {
        const reader = new FileReader()
        let imgResult = ''
        reader.readAsDataURL(file)
        reader.onload = function () { imgResult = reader.result }
        reader.onerror = function (error) { reject(error) }
        reader.onloadend = function () { resolve(imgResult) }
    })
},

到了這里,關(guān)于【js】js前端技巧之圖片格式轉(zhuǎn)換(File、Blob、base64):的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • html2canvas生成圖片地址Base64格式轉(zhuǎn)成blob在轉(zhuǎn)成file(二進(jìn)制)可正常發(fā)送(保姆教程,復(fù)制粘貼可用)

    html2canvas生成圖片地址Base64格式轉(zhuǎn)成blob在轉(zhuǎn)成file(二進(jìn)制)可正常發(fā)送(保姆教程,復(fù)制粘貼可用)

    開(kāi)始:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 最終結(jié)果:? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 1.?html2canvas方法生成的圖片地址已Base64編碼形式放在img標(biāo)簽src中可直接展示生成的圖片(注意 頁(yè)面標(biāo)簽獲取位置 ,還有個(gè) setTimeout 頁(yè)面渲染需要

    2024年02月13日
    瀏覽(27)
  • 將圖片轉(zhuǎn)換成Base64格式存入數(shù)據(jù)庫(kù)以及在前端頁(yè)面展示

    這個(gè)示例接口假設(shè)已經(jīng)有了一個(gè)數(shù)據(jù)庫(kù)連接池,并且已經(jīng)注入或初始化了數(shù)據(jù)源。這個(gè)接口的功能是讀取指定路徑的圖片文件,將其轉(zhuǎn)換為Base64編碼字符串,然后將其存入數(shù)據(jù)庫(kù)中??梢酝ㄟ^(guò)調(diào)用 saveImageToDB 方法來(lái)實(shí)現(xiàn)這個(gè)功能。調(diào)用該方法時(shí)需要傳入要存儲(chǔ)的圖片文件的路

    2024年02月16日
    瀏覽(22)
  • js實(shí)現(xiàn)base64,url,blob之間的相互轉(zhuǎn)換

    js實(shí)現(xiàn)base64,url,blob之間的相互轉(zhuǎn)換

    一般來(lái)說(shuō)前端展示圖片會(huì)通過(guò)三種方式: url、base64、blob 1.url: 一般來(lái)說(shuō),圖片的顯示還是建議使用url的方式比較好。 2.base64: 如果圖片較大,圖片的色彩層次比較豐富,則不適合使用這種方式,因?yàn)槠銪ase64編碼后的字符串非常大,會(huì)明顯增大HTML頁(yè)面,影響加載速度。如果圖

    2023年04月27日
    瀏覽(27)
  • js實(shí)現(xiàn)base64、url和blob之間相互轉(zhuǎn)換的三種方式

    js實(shí)現(xiàn)base64、url和blob之間相互轉(zhuǎn)換的三種方式

    Blob對(duì)象表示一個(gè)不可變、原始數(shù)據(jù)的類文件對(duì)象,Blob表示的不一定是JavaScript原生格式的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于js實(shí)現(xiàn)base64、url和blob之間相互轉(zhuǎn)換的三種方式 url 轉(zhuǎn) base64 Blob 轉(zhuǎn) url Blob 轉(zhuǎn) base64 base64 轉(zhuǎn)Blob base64 轉(zhuǎn) url 一般來(lái)說(shuō)前端展示圖片會(huì)通過(guò)三種方式:

    2024年02月03日
    瀏覽(30)
  • js:File和Base64(DataURL)互相轉(zhuǎn)換

    使用 使用 在線示例:https://mouday.github.io/front-end-demo/base64-file/base64-file.html 參考 js 把base64轉(zhuǎn)file文件的兩種方式 JS實(shí)現(xiàn)將文件和base64的相互轉(zhuǎn)換

    2024年02月15日
    瀏覽(19)
  • js里base64與file之間的轉(zhuǎn)換

    在 js中,可以使用 Blob 對(duì)象將 base64 字符串轉(zhuǎn)換為 File 對(duì)象。 方法一、base64 直接轉(zhuǎn)換為 File 對(duì)象: 首先, 需要從 base64 字符串中獲取文件類型, 然后將文件類型和 base64 字符串轉(zhuǎn)換為 Blob 對(duì)象。最后, 使用 Blob 對(duì)象構(gòu)造函數(shù)創(chuàng)建一個(gè) File 對(duì)象。 下面是一個(gè)示例函數(shù),它接收一個(gè)

    2024年02月09日
    瀏覽(21)
  • 前端FileReader對(duì)象實(shí)現(xiàn)圖片file文件轉(zhuǎn)base64

    前端FileReader對(duì)象實(shí)現(xiàn)圖片file文件轉(zhuǎn)base64

    1、file轉(zhuǎn)base64具體代碼 2、原理解析 ? 上面封裝的方法,其原理主要是借助 FileReader 對(duì)象來(lái)實(shí)現(xiàn)圖片格式的轉(zhuǎn)換, FileReader 對(duì)象中的 readAsDataURL() 方法,可以讀取一個(gè) File 或 Blob 類型的文件,并將其轉(zhuǎn)換為base64格式的字符串。但要注意的一點(diǎn)是:我們通過(guò) readAsDataURL() 方法去讀

    2023年04月09日
    瀏覽(33)
  • Android中的圖片如何轉(zhuǎn)換成Base64格式

    Android手機(jī)客戶端的圖片數(shù)據(jù)上傳到服務(wù)器中保存,首先需要將客戶端的圖片轉(zhuǎn)換成Base64格式,然后才能通過(guò)網(wǎng)絡(luò)上傳到服務(wù)器中。 讓客戶端將圖片上傳到服務(wù)器,將圖片的網(wǎng)絡(luò)URL告訴服務(wù)器 將圖片轉(zhuǎn)成Base64編碼,傳遞給服務(wù)器,服務(wù)器將Base64字符串解碼之后生成一張圖片。

    2023年04月27日
    瀏覽(17)
  • 前端 base64與圖片相互轉(zhuǎn)換

    前端 base64與圖片相互轉(zhuǎn)換

    base64轉(zhuǎn)圖片 如下圖:(后端返回的數(shù)據(jù)) base64轉(zhuǎn)換圖片文件 圖片(url)轉(zhuǎn)換base64 便捷的圖片轉(zhuǎn)化base64 利用 Chrome 瀏覽器,在 chrome 下新建一個(gè)窗口,然后把要轉(zhuǎn)化的圖片直接拖入瀏覽器,打開(kāi)控制臺(tái),點(diǎn) Source,如下圖所示,點(diǎn)擊圖片,右側(cè)就會(huì)顯示該圖片的 base64 編碼

    2024年02月12日
    瀏覽(24)
  • 將html字符串中的base64圖片轉(zhuǎn)換成file并上傳

    目的 解決富文本編輯器中復(fù)制粘貼的圖片 base64 字符串過(guò)長(zhǎng)導(dǎo)致無(wú)法存儲(chǔ)到數(shù)據(jù)庫(kù)的問(wèn)題 思路 通過(guò)正則 獲取html字符串中里面的所有圖片 base64 數(shù)組 然后每個(gè)圖片base64 轉(zhuǎn)成file 使用上傳文件的函數(shù) 上傳到服務(wù)器上. 將上傳后獲取到的圖片訪問(wèn)url 替換成 數(shù)據(jù)里面的 img 的 src

    2024年01月23日
    瀏覽(58)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包