typescript - 数据图像(base64)到普通 url 或 blob url
问题描述
所以我想要实现的是。用户可以选择从相机拍照和上传图片,但每当他们上传图片时,图片将是“数据:图像/jpeg;base64”,我尝试将数据图像设为 blob,但我的 blob 返回一个对象而不是一个url字符串,我该怎么做呢?我现在最好的方法是:
this.camera.getPicture(options).then((imageData) => {
this.myphoto = 'data:image/jpeg;base64,' + imageData;
this.b64toBlob(this.myphoto, 'image/jpeg', 512);
}, (err) => {
// Handle error
});
相机的代码
以及到 blob 的 base64 转换器
b64toBlob(b64Data: string, contentType: string, sliceSize: number) {
contentType = contentType || '';
sliceSize = sliceSize || 512;
var byteCharacters = atob(b64Data.replace(/^data:image\/(png|jpeg|jpg);base64,/, ''));
var byteArrays = [];
for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
var slice = byteCharacters.slice(offset, offset + sliceSize);
var byteNumbers = new Array(slice.length);
for (var i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
我怎样才能使它成为一个blob链接或对将图像存储到数据库有用的东西
解决方案
推荐阅读
- regex - 正则表达式:选择特定字符和其他子字符串之前的所有内容,或者如果子字符串和字符都不存在则选择所有内容
- javascript - 需要帮助替换元素的特定参数
- r - dplyr lag 对来自 bit64 的 integer64 有问题
- vb.net - 自定义输入框不记录响应
- javascript - 如何从控制台运行此代码段
- swift - 选择 tableview 行时的奇怪显示行为
- asp.net-core - Blazor:System.NotSupportedException:找不到编码 1252 数据
- javascript - 大于 10 的变量无效
- mysql - 考虑性能和友好 URL 时要实现的数据库密钥设计
- c - 检测字符流结束