<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
因為瀏覽器沙箱的存在,web端操作檔案的限制比較多,只能進行一些簡單的檔案上傳下載。對於編輯檔案和檔案轉換感到蒼白無力,但這並不代表說毫無辦法。隨著現代化瀏覽器的不斷升級,也提供了一些好用強大的API可以間接操作檔案,例如文字中的Blob、canvas等等。
Blob
: 物件表示一個不可變、原始資料的類檔案物件。它的資料可以按文字或二進位制的格式進行讀取,也可以轉換成 ReadableStream 來用於資料操作。
Blob 表示的不一定是JavaScript原生格式的資料。File 介面基於Blob,繼承了 blob 的功能並將其擴充套件使其支援使用者系統上的檔案。
dataURL
: 即字首為 data: 協定的URL,其允許內容建立者向檔案中嵌入小檔案。
Data URLs 由四個部分組成:字首(data:)、指示資料型別的MIME型別、如果非文字則為可選的base64標記、資料本身:data(base64),
File
: 通常情況下, File 物件是來自使用者在一個 input 元素上選擇檔案後返回的 FileList 物件,也可以是來自由拖放操作生成的 DataTransfer 物件,或者來自htmlCanvasElement 上的 mozGetAsFile() API。
File 物件是特殊型別的 Blob,且可以用在任意的 Blob 型別的 context 中。比如:FileReader, URL.createObjectURL(), createImageBitmap(), 及 XMLHttpRequest.send() 都能處理 Blob 和 File。
canvas
: Canvas API 提供了一個通過JavaScript和html的 canvas 元素來繪製圖形的方式。它可以用於動畫、遊戲畫面、資料視覺化、圖片編輯以及實時視訊處理等方面。
function dataURLToBlob(fileDataURL) { let arr = fileDataURL.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); while(n --) { u8arr[n] = bstr.charCodeAt(n) } return new Blob([u8arr], {type: mime}) }
// 思路:File, Blob ——> dataURL ——> canvas function fileAndBlobToCanvas(fileDataURL) { let img = new Image() img.src = fileDataURL let canvas = document.createElement('canvas') if(!canvas.getContext) { alert('瀏覽器不支援canvas') return; } let ctx = canvas.getContext('2d') document.getElementById('container').appendChild(canvas) img.onload = function() { ctx.drawImage(img, 0, 0, canvas.width, canvas.height) } }
FileReader: 物件允許 Web 應用程式非同步讀取檔案(或原始資料緩衝區)內容,使用 File 或 Blob 物件指定要讀取的檔案或資料。
function fileToDataURL(file) { let reader = new FileReader() reader.readAsDataURL(file) // reader 讀取檔案成功的回撥 reader.onload = function(e) { return reader.result } }
function canvasToDataURL() { let canvas = document.createElement('canvas') let canvasDataURL = canvas.toDataURL('image/png', 1.0) return canvasDataURL }
以上就是Blob實現與File DataURL canvas相互轉換範例的詳細內容,更多關於Blob與File DataURL canvas相互轉換的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45