javascript - 有没有办法在 Javascript 中将 Blob 图像类型转换为 File 类型?

标签 javascript angular object dom types

我正在使用 ngx-image-cropper,https://www.npmjs.com/package/ngx-image-cropper ,并且需要以编程方式设置默认加载的图像。裁剪器通过 imageFileChanged API 输入提供了一个导出来执行此操作。它需要一个文件类型,并且我尝试提取的任何图像都是 Blob 格式。

有没有办法将 Blob 转换为文件?

我还没有找到任何具体的例子来说明有人使用这个特定的图像裁剪器来执行此操作。如果包含此功能并且得到良好支持,我愿意使用另一种功能。

我可以成功地从我们自己的服务器或随机 api 获取 Blob 图像,我只是还没有找到将其转换为文件的方法。

是否有 HttpClientModule 的替代方案可以产生不同的类型?

图像裁剪器的基本用法是接收一个文件并在裁剪工具中使用该文件。有没有办法以编程方式执行此操作?

我很乐意提供任何代码,我只是不知道在这种情况下有什么帮助。

最佳答案

Convert Only

let file = new File([blob], "name.extension");

如果您尝试下载 blob 并将其转换为任何文件类型,请执行以下操作。既然您说您正在下载并提取图像。

Fetch Convert, Download, Extension

function download(url, filename) {
    // Request
    fetch(url, { 
        mode: 'no-cors' /*{mode:'cors'}*/
    // Callback
    }).then((transfer) => {
        // Return blob
        return transfer.blob();
    // Return data
    }).then((bytes) => {
        // Create an element
        let elm = document.createElement('a');
        // Add blob data to element
        elm.href = URL.createObjectURL(bytes);
        // Download blob data with certain extension
        elm.setAttribute('download', filename);
        elm.click()
    }).catch((error) => {
        console.log(error);
    })
}

download('http://BLOB', 'EXTENSION');

我认为这就是您正在寻找的转换函数 How to convert Blob to File in JavaScript

Typescript:

public convert = (blb: Blob, f:string): File => {
    var b: any = blb;
    b.lastModifiedDate = new Date();
    b.name = f;
    return <File>theBlob;
}
    const Data = new Blob();
    let file = Convert(Data, 'extension');

关于javascript - 有没有办法在 Javascript 中将 Blob 图像类型转换为 File 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55421795/

相关文章:

javascript - 为什么我不能获得超过 2 个变量来处理 HTML5 Canvas 和 JavaScript?

node.js - Angular 通用集 404 状态代码不起作用

html - 星云响应式布局

javascript - 如何从 3rd 方库访问 Angular 组件

C++在main中调用类的静态函数

java - 接口(interface) : Java Language Specification

javascript - 带有 $or 条件的 Mongoose findOne 方法会引发错误

javascript - 更改复选框不会触发功能

javascript - 定位这个内联元素我做错了什么?

javascript - 从对象中提取名称与测试匹配的属性