Pull to refresh

Comments 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 поддерживает только сафари, хотя я точно помню, что использовал эту фишку в хроме. Пойду смотреть, где ошибся
Средний цвет по картинке проще получить через ресайз в 1 пиксель. Вы уж лучше бы что-нить поинтереснее придумали. Топ три оттенка (hue) по модели HSV например, для хромакея.

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

Sign up to leave a comment.

Articles