首页IT科技图片格式转换器官方免费版(【前端技巧】图片格式转换(File、Blob、base64))

图片格式转换器官方免费版(【前端技巧】图片格式转换(File、Blob、base64))

时间2025-04-28 18:54:01分类IT科技浏览5414
导读:@Author:Outman @Date:2022-11-17...

@Author:Outman

@Date:2022-11-17

图片格式转换(File             、Blob                   、base64)

一       、类型简介

BLOB(binary large object): 二进制大对象,是一个可以存储二进制文件的容器             。 在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型                   。

属性名称 读/写 描述 size 只读 Blob 对象中所包含数据的大小(字节)       。 type 只读 一个字符串            ,表明该Blob对象所包含数据的MIME类型      。如果类型未知                    ,则该值为空字符串                   。例如 “image/png             ”.

File: File 对象通常是用户在网页中的一个<input> 元素上传文件返回的 FileList 对象       ,或者是拖放操作返回的 DataTransfer 对象            ,也可以在浏览器中的控制台中自己创建             。

属性名称 读/写 描述 name 只读 返回文件的名称.由于安全原因,返回的值并不包含文件路径       。 type 只读 返回 File 对象所表示文件的媒体类型(MIME)                   。例如 PNG 图像是 “image/png                   ”. lastModified 只读 number, 返回所引用文件最后修改日期,自 1970年1月1日0:00 以来的毫秒数             。 lastModifiedDate 只读 Date, 返回当前文件的最后修改日期,如果无法获取到文件的最后修改日期,则使用当前日期来替代。 size 只读 File 对象中所包含数据的大小(字节)                   。

base64: Base64是网络上最常见的用于传输8Bit字节码的编码方式之一                   ,Base64就是一种基于64个可打印字符来表示二进制数据的方法                   。编码规则:把3个字节变成4个字节;每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节点 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 });

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
搜索引擎的网站的优化技巧主要有哪些?(掌握搜索引擎优化的精髓,助你网站腾飞) vue cli更新(vue cli项目升级–vue cli3升级到vue cli4)