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

最新文章

  1. tomcat 9.0配置管理员用户名和密码
  2. [deviceone开发]-do_QRCode的简单示例
  3. 我所了解的cgi
  4. OpenGL教程
  5. JavaScript设计模式——前奏
  6. ulipad python配置
  7. asp天猫自主发码的请求
  8. CImg 读取jpg, png ,tif 等格式失败解决方案
  9. 解决animate动画连续播放bug
  10. ExtJS4 自己定义基于配置的高级查询1
  11. Aliexpress API 测试工具
  12. DP CF 319 div1B
  13. jdk1.8中的for循环
  14. JavaScript基础学习(一)—JavaScript简介
  15. Python的*args与**kwargs
  16. JSON字符串转为JSON对象
  17. Python网络爬虫笔记(二):链接爬虫和下载限速
  18. POJ 1200 Crazy Search 【hash】
  19. Jmeter put 方法总结
  20. PHP通过api上传图片

热门文章

  1. Oracle 备份与恢复 (Docker部署版)
  2. CSS3--通过Animation实现简单的手指点击动画
  3. 06#Web 实战:可滑动的标签页
  4. 基于C++的OpenGL 11 之投光物
  5. springboot跳转页面404的问题
  6. java开发环境搭建 (JDK卸载与安装、配置)
  7. ChatGPT is at capacity right now.ChatGPT Plus subscriber login Add your email for a personalized login link的解决办法
  8. python读取Excel指定单元格的值
  9. [学习计划]mysql常用语句-随学随整理
  10. CentOS 7 yum安装MongoDB