web-dev-qa-db-ja.com

Firebaseにアップロードする前に画像のサイズを変更する

Firebaseストレージは非常にクールで使いやすいように見えますが、Firebaseストレージにアップロードする前に画像のサイズを変更する方法があるかどうか疑問に思っています。たとえば、サーバーでImageMagickを使用してプロセスを実行し、FirebaseSDKを使用してアップロードプロセスを実行します。 Firebase SDKServerのストレージ機能がないことに気付きました。

11
Sergio Flores

Firebase Storage + Google Cloud Functions を使用して、画像をアップロードし、画像のサイズを変更して(ImageMagickなどを使用)、FirebaseStorageに書き戻すこともできます。

これらを一緒に使用する例があります ここ (ただし、画像のリサイザーではなく、 Cloud Vision API をトリガーします)。

簡単な補足:Firebase StorageにはNode.jsクライアントがありません。代わりに、 GCloud-Node ライブラリを使用することをお勧めします。

15
Mike McDonald

私たちはJavaScript resizingを使用しています。これは、クライアントのデバイス処理能力を使用して画像のサイズを変更し、優れた機能を発揮して、スペースとお金を節約し、クライアントを節約しますほとんどのモバイルケースでは、時間とお金がかかります。

私たちが使用している元のスクリプトここからになり、それを使用する手順は次のように簡単です。

<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)がたくさんのメリットに値すると信じているので、彼の答えに投票することをお勧めします。

3
DavidTaubmann