Изображение данных (base64) на обычный URL или URL-адрес BLOB-объекта - PullRequest
0 голосов
/ 18 февраля 2019

Так что я пытаюсь достичь.Пользователи могут выбирать между съемкой изображения с камеры и загрузкой изображения, но всякий раз, когда они загружают изображение, изображение будет «data: image / jpeg; base64», и я пытался сделать изображение данных большим двоичным объектом, но мой большой объект возвращает объекта не URL-адрес обратно, так как мне это сделать?лучший способ, который у меня есть сейчас:

 this.camera.getPicture(options).then((imageData) => {
        this.myphoto = 'data:image/jpeg;base64,' + imageData;
        this.b64toBlob(this.myphoto, 'image/jpeg', 512);
    }, (err) => {
        // Handle error
    });

код для камеры

и конвертер base64 в blob

 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-ссылка или что-то, что будет полезно для хранения изображений в базе данных

...