Как стать автором
Обновить

Комментарии 8

А зачем вы FileReader используете если есть более высокий уровень blob?

А подскажите как используя blob получить Data URL под превью и рендер на канвасе?

Спасибо, хороший вариант.
Второй раз ресурс по идее грузится не должен. Получается reader.onload заменяется image.onload

Можно даже не забивать память, получая Data URL. MDN.
Для Safari (13.1 точно) нужен полфил, в одном из проектов решилнакостылил так (TS)
Костыль
if (navigator.userAgent.toLocaleLowerCase().includes('safari')) {
    Object.defineProperty(HTMLMediaElement.prototype, 'srcObject', {
        // @ts-ignore
        get srcObject(): string|undefined {
            return this.__srcObject;
        },
        // @ts-ignore
        set srcObject(src: MediaProvider|undefined) {
            this.__srcObject = !!src ? URL.createObjectURL(src) : src;
        }
    });
}


После этого можно просто присваивать Blob или Stream напрямую в srcObject.

UPD: Странно. MDN говорит, что Blob для srcObject поддерживает только сафари, хотя я точно помню, что использовал эту фишку в хроме. Пойду смотреть, где ошибся

Возможно, дело было с MediaStream?

НЛО прилетело и опубликовало эту надпись здесь

Так в ресайзе же будет использоваться какая-то фильтрая (ну к примеру биленейная) которая далеко не факт что даст средний цвет ИМХО

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории