Изменение размера изображения перед его загрузкой в firebase

Firebase storage выглядит очень круто и прост в использовании, но мне интересно, есть ли способ изменить размер изображения перед загрузкой его в хранилище Firebase, например, запустить процесс с помощью ImageMagick на сервере, а затем запустить процесс загрузки с помощью Firebase SDK, но я замечаю, что для сервера Firebase SDK нет функций хранения.

2 ответов


вы также можете использовать Firebase Storage+Google Cloud Функции чтобы загрузить изображение, измените размер изображения (используя ImageMagick или аналогичный) и запишите его обратно в хранилище Firebase.

У меня есть пример использования этих вместе здесь (хотя я вызвать Cloud Vision API, а не изменение размера изображения).

краткое Примечание: хранилище Firebase не имеет узла.клиент js, вместо этого мы рекомендуем использовать GCloud-Узле библиотека.


мы используем изменение размера JavaScript, который использует вычислительную мощность устройства клиентов для изменения размера изображения и отлично работает, экономя нам пространство и деньги и экономя клиенту кучу времени, а также деньги в большинстве мобильных случаев.

исходный скрипт, который мы используем пришел отсюда, и процедуры, чтобы использовать его так же просто, как это:

<input type="file" id="select">
<img id="preview">
<script>
document.getElementById('select').onchange = function(evt) {
    ImageTools.resize(this.files[0], {
        width: 320, // maximum width
        height: 240 // maximum height
    }, function(blob, didItResize) {
        // didItResize will be true if it managed to resize it, otherwise false (and will return the original file as 'blob')
        document.getElementById('preview').src = window.URL.createObjectURL(blob);
        // you can also now upload this blob using an XHR.
    });
};
</script>

Я считаю, что этот парень (dcollien) заслуживает много заслуг, поэтому я бы рекомендую проголосовать за его ответ.