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'});
};

file的各种转换的更多相关文章

  1. IFile、File与实体转换

    /** * 根据物理实体文件在开发工程中创建实体文件 */ @Override public void getEntityFilesByErFile(IFile erfile, IFolder ent ...

  2. File和byte[]转换

    http://blog.csdn.net/commonslok/article/details/9493531 public static byte[] File2byte(String filePa ...

  3. js file对象 文件大小转换可视容易阅读的单位

    function returnFileSize(number) { if(number < 1024) { return number + 'bytes'; } else if(number & ...

  4. c#中字节数组byte[]、图片image、流stream,字符串string、内存流MemoryStream、文件file,之间的转换

    字节数组byte[]与图片image之间的转化 字节数组转换成图片 public static Image byte2img(byte[] buffer) { MemoryStream ms = ne ...

  5. JAVASE(十六) IO流 :File类、节点流、缓冲流、转换流、编码集、对象流

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.File类型 1.1.File类的理解 File类是在java.io包下 File可以理解成一个文件 ...

  6. Jackson轻易转换JSON

    原文http://www.cnblogs.com/hoojo/archive/2011/04/22/2024628.html Jackson可以轻松的将Java对象转换成json对象和xml文档,同样 ...

  7. Jackson 框架,轻易转换JSON

    Jackson 框架,轻易转换JSON Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象. 前面有介绍过json-lib这个框架,在 ...

  8. java将office文档pdf文档转换成swf文件在线预览

    第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行. 主要模块有writer(文 ...

  9. Jackson 框架,轻易转换JSON(转)

    Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象. 相比json-lib框架,Jackson所依赖的jar包较少,简单易用并且性能也 ...

  10. Jackson框架,json转换

    Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象. 前面有介绍过json-lib这个框架,在线博文:http://www.cnblo ...

随机推荐

  1. CentOS7一键安装RPM版LNMP(NGINX+PHP+MySQL)环境

    转载:简书 CentOS7一键安装RPM版LNMP(NGINX+PHP+MySQL)环境 - 简书 (jianshu.com) (需要配置nginx.conf文件) 转载:csdn (35条消息) V ...

  2. mybatis中的土鸡杂鱼

    mybatis中的土鸡杂鱼 目录 mybatis中的土鸡杂鱼 1.mapper接口为什么要和mapper.xml在同一个路径下? 2.主键生成为什么配置一个字段就可以? 原理 3.为什么默认使用的是预 ...

  3. python虚拟环境解决不能执行脚本的问题

    1 安装虚拟环境 pip install virtualenv 2 创建虚拟文件夹 mkdir .venvs 3.设置虚拟目录 virtualenv --system-site-packages .v ...

  4. Prowide Core:SWIFT [tm] MT(FIN)消息传递的Java框架 开源

    Prowide Core(以前称为WIFE)是用于管理SWIFT MT消息的开源Java框架. 库的主要功能是针对所有MT消息类型的全面Java模型,以及简单易懂的解析和构建API. 该项目自2006 ...

  5. VOLO论文笔记

    Outlook Attention 设给定输入为 \(X \in R^{H \times W \times C}\), 首先经过两个线性映射得到两个输出A 和 V,A叫做outlook weight ...

  6. 【力扣】:N字型

    1 class Solution { 2 public String convert(String s, int numRows) { 3 String resultS = ""; ...

  7. Java-net

    Java网络编程 相关概念: IP地址 端口 socket 理论 TCP 区分服务端和客户端 服务端: (1)创建ServerSocket对象,传入监听的端口号 (2)等待客户端的连接,调用accep ...

  8. element table组件列表固定列后横向滚动条的问题

    使用el-table的fixed属性固定表格列的时候滚动条被固定列覆盖部分无法拖动 可以使用下面配置来解决 .el-table__fixed { height: auto !important; // ...

  9. jdbc中druid连接池遇到的问题和jdbcTemplate

    无效的源发行版11 这是jdk版本不一致,去项目结构里排查一下 严重: init datasource error com.mysql.jdbc.exceptions.jdbc4.MySQLNonTr ...

  10. hive中时间-日期函数的用法

    current_date:获取当前日期 用法:select current_date: 输出:2020-12-04 unix_timestamp:获取当前unix时间戳 用法:select unix_ ...