我正在使用 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/