Конвертировать URI данных в Blob
В настоящее время я использую библиотеку Jdenticon для создания пользователя identicons
как изображение профиля по умолчанию. Я хотел бы преобразовать URI данных для SVG
в Blob или сделать его в виде файла изображения, чтобы я мог сохранить файл изображения в Firebase.
Я попробовал несколько примеров кода из Stack Overflow, но ни один из них не работал для меня. (Я не конвертировал данные в base64. Не думаю, что в синтаксисе SVG есть какие-то безумные символы.)
createIdenticonBlob(hash: string) {
if (hash) {
let svg = jdenticon.toSvg(hash, Math.min(50, 50));
let uri = "data:image/svg+xml," + encodeURIComponent(svg);
return this.uploadService.convertDataURIToBlob(uri); // I'm not sure :(
}
}
Я не уверен, как конвертировать Data URI
в файл изображения. Какие-нибудь мысли?
1 ответ
Вы не хотите преобразовывать dataURI в файл, вы хотите создать файл из разметки svg, который является просто текстом, и если ваш плагин действительно возвращает разметку svg, это действительно легко сделать:
createIdenticonBlob(hash: string) {
if (hash) {
let svg = jdenticon.toSvg(hash, Math.min(50, 50));
let blob = new Blob([svg], {type: 'image/svg+xml'});
return blob;
}
}