file的各种转换
2024-10-20 16:42:15
1.将bloburl转换为file格式
let data = {
name: "新年致辞.png",
status: "success",
uid: 1664334311149,
url: "blob:http://localhost:9528/d66ad67a-eef7-4b47-ae8b-5c35edcf2135"
};
function async getblobFile (data) {
let file = {};const config = { responseType: 'blob' };
const response = await axios.get(data.url, config);
file = new window.File([response.data], data.name, { type:'image/png' });
return file
};
const res = getblobFile(data);
2.将跨域图片地址转化为base64格式
let params = {
name: "新年致辞",
status: "success",
uid: 1664335051168,
url: "https://test.aliyun.live.replay.sgcctop.com/images/20220923/1663926296844014067.jpg", //跨域图片地址
}
const res = await getBase64Img (paramas)
function getBase64Img (params) {
return new Promise(function (resolve, reject) {
if (params && params.url) {
var image = new Image();
let dataURL = '';
image.src = params.url + "?" + Math.random();
image.crossOrigin = 'anonymous';
image.onload = function () {
var canvas = document.createElement("canvas");
canvas.width = image.width;
canvas.height = image.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(image, 0, 0, image.width, image.height);
var ext = image.src.substring(image.src.lastIndexOf(".") + 1).toLowerCase();
dataURL = canvas.toDataURL("image/" + ext);
if (params.callback) {
if (params.data) {
[params.callback](dataURL, params.data);
} else {
[params.callback](dataURL);
}
};
resolve(dataURL);
}
}
});
3.file转base64
function fileToBase64 (file, callback) {
const fileReader = new FileReader()
fileReader.readAsDataURL(file)
fileReader.onload = function () {
callback(this.result)
}
}
//调用
fileToBase64(file.raw, (res) => {
console.log(res) //res为base64
})
4.blob转blobUrl
let imgUrl = window.URL.createObjectURL(blob);
console.log(imgUrl) //imgUrl为blobUrl
5.base64转file
function base64ToFile(dataurl, filename) { //将base64转换为文件
var arr = dataurl.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 File([u8arr], filename, {type: mime});
} base64ToFile(base64,filename) //分别为base64字符串、文件名
6.base64转blob
export function base64ToBlob (dataurl) {
var arr = dataurl.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 });
} let imgBlob = base64ToBlob(blob) // imgBlob为blob格式
7.file转blob
let file = document.querySelector('#file');
let reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function () {
let blob = new Blob([reader.result], {type: 'image/png'});
};
最新文章
- tomcat 9.0配置管理员用户名和密码
- [deviceone开发]-do_QRCode的简单示例
- 我所了解的cgi
- OpenGL教程
- JavaScript设计模式——前奏
- ulipad python配置
- asp天猫自主发码的请求
- CImg 读取jpg, png ,tif 等格式失败解决方案
- 解决animate动画连续播放bug
- ExtJS4 自己定义基于配置的高级查询1
- Aliexpress API 测试工具
- DP CF 319 div1B
- jdk1.8中的for循环
- JavaScript基础学习(一)—JavaScript简介
- Python的*args与**kwargs
- JSON字符串转为JSON对象
- Python网络爬虫笔记(二):链接爬虫和下载限速
- POJ 1200 Crazy Search 【hash】
- Jmeter put 方法总结
- PHP通过api上传图片
热门文章
- Oracle 备份与恢复 (Docker部署版)
- CSS3--通过Animation实现简单的手指点击动画
- 06#Web 实战:可滑动的标签页
- 基于C++的OpenGL 11 之投光物
- springboot跳转页面404的问题
- java开发环境搭建 (JDK卸载与安装、配置)
- ChatGPT is at capacity right now.ChatGPT Plus subscriber login Add your email for a personalized login link的解决办法
- python读取Excel指定单元格的值
- [学习计划]mysql常用语句-随学随整理
- CentOS 7 yum安装MongoDB