js的File对象,Blob和file相互转换

示例
在这里插入图片描述

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>js的File对象,Blob和file相互转换</title><style>.prview {display: flex;margin: 10px;}.prview .rename {display: inline-block;width: 60px;}.prview img {width: 200px;height: 200px;}</style>
</head><body><input type="file" onchange="upload(this)" /><div class="prview"><span class="rename">base64:</span><img id="base64" src="" alt="" /></div><div class="prview"><span class="rename">blob:</span><img id="blob" src="" alt="" /></div><script>const upload = async (e) => {let files = e.files[0];console.log(files);// file转base64let base64 = await fileToBase64(files);setImage('base64', base64) //设置图片// base64转bloblet blob = parseBlob(base64);setImage('blob', blob) //设置图片// blob转filelet file = blobToFile(blob);console.log(file);};// blob转fileconst blobToFile = (blob) => {let rename = new Date().getTime() + ".png";let file = new File([blob], rename, { type: "image/png" });return file;};// base64转blobconst parseBlob = (base64) => {var arr = base64.split(",");var mime = arr[0].match(/:(.*?);/)[1];var bstr = atob(arr[1]);var n = bstr.length;var u8arr = new Uint8Array(n);for (var i = 0; i < n; i++) {u8arr[i] = bstr.charCodeAt(i);}var url = URL || webkitURL;return url.createObjectURL(new Blob([u8arr], { type: mime }));};// file转base64const 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);};});};// 设置格式到图片const setImage = (id, val) => {let img = document.getElementById(id)img.setAttribute('src', val)}</script>
</body></html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/144763.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android BitmapFactory.decodeResource读取原始图片装载成原始宽高Bitmap,Kotlin

Android BitmapFactory.decodeResource读取原始图片装载成原始宽高Bitmap&#xff0c;Kotlin fun getOriginalBitmap(resId: Int): Bitmap {val options BitmapFactory.Options()options.inJustDecodeBounds true //只解析原始图片的宽高&#xff0c;不decode原始文件装载到内…

t-product的matlab实现

t-product是一个比较好的概念&#xff0c;相对应于矩阵中的乘法。 定义如下 这里的 circ(A),MatVec(b) 的定义分别如下 这么定义的原因是为了映射到FFT域里面去&#xff0c;简化计算。 上面的一段摘录说明&#xff1a;直接按照定义来计算&#xff0c;会耗费大量的计算资源。因…

LLm微调使用的数据集

https://baijiahao.baidu.com/s?id=1769124161629981325&wfr=spider&for=pc RefGPT:基于RefGPT生成大量真实和定制的对话数据集地址:https://github.com/ziliwangnlp/RefGPT数据集说明:包括RefGPT-Fact和RefGPT-Code两部分,其中RefGPT-Fact给出了5万中文的关于事实…

ATFX汇市:英国通胀率大降两个百分点,GBPUSD止步近两月高点

ATFX汇市&#xff1a;据英国国家统计局数据&#xff0c;英国10月CPI年率最新值4.6%&#xff0c;远低于前值6.7%&#xff0c;低于预期值4.8%&#xff0c;英国通胀率大降温&#xff0c;降幅高达2.1个百分点&#xff0c;远远超出市场预期。4.6%的通胀率是2021年10月以来最低值。主…

Go常见数据结构的实现原理——map

&#xff08;一&#xff09;基础操作 版本&#xff1a;Go SDK 1.20.6 1、初始化 map分别支持字面量初始化和内置函数make()初始化。 字面量初始化&#xff1a; m : map[string] int {"apple": 2,"banana": 3,}使用内置函数make()初始化&#xff1a; m …

Java 简单实现一个 TCP 回显服务器

文章目录 TCP 服务端TCP 客户端实现效果TCP 服务端(实现字典功能)总结 TCP 服务端 package network;import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Soc…

WPF依赖属性

WPF中的依赖属性是一种特殊类型的属性&#xff0c;它们是建立在WPF属性系统之上的。依赖属性的设计旨在提供一种比普通.NET属性更丰富的功能集&#xff0c;包括但不限于&#xff1a; 绑定支持&#xff1a;依赖属性可以绑定到其他属性或数据源&#xff0c;这是MVVM模式的基础。…

Linux - 内存 - 预留内存占用分析

说明 Linux启动log中会显示平台的内存信息&#xff0c;公司SOC&#xff0c;物理DRAM实际size是128M&#xff0c;但是启动log中total size不足128MB&#xff0c;并且预留内存&#xff08;82272K reserved&#xff09;过多&#xff0c;启动log如下&#xff1a; Memory: 48032K/…

基于springboot的医护人员排班系统 全套代码 全套文档

基于springboot的医护人员排班系统,springboot vue mysql (毕业论文10411字以上,共27页,程序代码,MySQL数据库) 代码下载链接&#xff1a;https://pan.baidu.com/s/177HdCGtTvqiHP4O7qWAgxA?pwd0jlf 提取码&#xff1a;0jlf 【运行环境】 IDEA, JDK1.8, Mysql, Node, Vue …

HDP集群Kafka开启SASLPLAINTEXT安全认证

hdp页面修改kafka配置 java代码连接kafka增加对应的认证信息 props.put("security.protocol","SASL_PLAINTEXT");props.put("sasl.mechanism","PLAIN");props.put("sasl.jaas.config","org.apache.kafka.common.securi…

【华为HCIP | 华为数通工程师】ISIS 高频题(1)

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

SELinux零知识学习十一、SELinux策略语言之客体类别和许可(5)

接前一篇文章&#xff1a;SELinux零知识学习十、SELinux策略语言之客体类别和许可&#xff08;4&#xff09; 一、SELinux策略语言之客体类别和许可 3. 有效的客体类别 &#xff08;2&#xff09;与网络有关的客体类别 与网络有关的客体类别代表网络资源如网络接口、不同种类…

C# 集合用法介绍

在C#中&#xff0c;集合是一种特殊的数据类型&#xff0c;允许我们将多个元素组织在一起。这些元素可以是相同的类型或者可以是不同的类型。C#集合主要包括以下几种类型&#xff1a; List&#xff1a;它是一个有序的元素列表&#xff0c;用户可以添加、删除或查找元素。Dictio…

Spring Boot 日志

日志概述 ⽇志对我们来说并不陌⽣&#xff0c;我们经常需要通过打印⽇志来发现和定位问题,或者根据⽇志来分析程序的运⾏过程.在Spring的学习中, 也经常需要根据控制台的⽇志来分析和定位问题. 打印日志 一&#xff1a;在程序中得到⽇志对象. 通过⽇志⼯⼚ LoggerFactory 获取…

embedding的综述

0【自然语言处理】Word2Vec 词向量模型详解 Python代码实战 1 一文读懂Embedding的概念&#xff0c;以及它和深度学习的关系 one-hot 变成地位稠密的向量&#xff0c;降维 什么是词嵌入&#xff1a;讲词汇表中的词或者词语映射成固定长度的向量。 具体过程&#xff1a; …

2023年第九届数维杯国际大学生数学建模挑战赛A题

2023年第九届数维杯国际大学生数学建模挑战赛正在火热进行&#xff0c;小云学长又在第一时间给大家带来最全最完整的思路代码解析&#xff01;&#xff01;&#xff01; A题思路解析如下&#xff1a; 完整版解题过程及代码&#xff0c;稍后继续给大家分享~ 更多题目完整解析点…

MIB 操作系统Lab: Xv6 and Unix utilities(1)boot xv6

从github中下载xv6代码 $ git clone git://g.csail.mit.edu/xv6-labs-2023 $ cd xv6-labs-2023 编译和运行xv6: $ make qemu 如果在终端输入ls命令&#xff0c;能看到输出。 大多数都是可以直接运行的命令。 xv6没有ps命令&#xff0c;但是可以输入ctrl-p可以看到进程的信…

spring boot 集成 RedisSearch 和 RedisJSON

1. 准备工作 环境说明 java 8&#xff1b;redis7.2.2&#xff0c;redis集成RedisSearch、redisJson 模块&#xff1b;spring boot 2.5在执行 redis 命令&#xff0c; 或者监控 程序执行的redis 指令时&#xff0c;可以采用 redisinsight查看&#xff0c;下载地址。 背景说明 需…

fileread任意文件读取学习笔记

任意文件读取概述 一些网站的需求&#xff0c;可能会提供文件查看与下载的功能。如果对用户查看或下载的文件没有限制或者限制绕过&#xff0c;就可以查看或下载任意文件。这些文件可以是源代码文件&#xff0c;配置文件&#xff0c;敏感文件等等。 任意文件读取会造成&#x…

Linux命令--重启系统的方法

原文网址&#xff1a;Linux命令--重启系统的方法_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Linux重启系统的方法。 普通重启 reboot reboot的工作过程跟下边的halt差不多&#xff0c;不过它是引发主机重启&#xff0c;而halt是关机。它的参数与halt相差不多。 shutdown …