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. 跳板攻击之:EarthWorm代理转发

    跳板攻击之:EarthWorm代理转发 目录 跳板攻击之:EarthWorm代理转发 1 EarthWorm官方介绍 2 官方使用方法: 2.1 环境 2.2 正向 SOCKS v5 服务器 2.3 ...

  2. CodeQL练习1

    CodeQL官方准备了一些无关编程语言的QL语言练习,我这里整理稍许来记录学习一下. QL是一种逻辑编程语言,所以它是由逻辑公式构成的.QL使用常见的逻辑连接词(如and.or.not).量词(如fo ...

  3. 基于C++的OpenGL 13 之Mesh

    1. 引言 本文基于C++语言,描述OpenGL的Mesh 前置知识可参考: 基于C++的OpenGL 12 之多光源 - 当时明月在曾照彩云归 - 博客园 (cnblogs.com) 笔者这里不过多 ...

  4. wwise 音频引擎介绍

    https://blog.csdn.net/GJQI12/article/details/108007696

  5. Python爬虫-爬取手机应用市场中APP下载量

    一.首先是爬取360手机助手应用市场信息,用来爬取360应用市场,App软件信息,现阶段代码只能爬取下载量,如需爬取别的信息,请自行添加代码. 使用方法: 1.在D盘根目录新建.tet文件,命名为Ap ...

  6. 有趣的drop-shadow

    如果写了好几个阴影,filter: drop-shadow(-0.5vmin 6vmin 0 var(--s2)) drop-shadow(-4.5vmin 10vmin 0 var(--v3));将 ...

  7. ARC157E XXYX Binary Tree 题解

    首先,条件可以抽象为 Y 不能相连,然后: 钦定根为 Y,YX 的个数加上 \(2\): 钦定某一个叶子节点为 Y,XY 的个数加上 \(1\): 钦定某一个非叶子非根节点为 Y,YX 的个数加上 \ ...

  8. SpringBoot运行就停止

    检查下是不是没有引入springboot-starter-web依赖 <dependency> <groupId>org.springframework.boot</gr ...

  9. python读取Excel指定单元格的值

    使用openpyxl实现 只支持xlsx文件,不支持xls import openpyxl def read_cell(io, sheet, cell='A2'): """ ...

  10. vue table刷新单行数据

    1.给el-table加上标记方法 <el-table v-loading="loading" :data="tagList1" @selection-c ...