繁体   English   中英

在将图像上传到 firebase 之前调整图像大小

[英]Resize an image before uploading it to firebase

Firebase 存储看起来非常酷且易于使用,但我想知道是否有一种方法可以在将图像上传到 Firebase 存储之前调整图像大小,例如,在服务器中使用 ImageMagick 运行一个过程,然后使用 Firebase SDK 运行上传过程但是我注意到 Firebase SDK 服务器没有存储功能。

您还可以使用 Firebase Storage + Google Cloud Functions上传图像、调整图像大小(使用 ImageMagick 或类似工具),并将其写回 Firebase Storage。

在这里有一个使用这些的示例(尽管我触发了Cloud Vision API ,而不是图像调整器)。

附注:Firebase Storage 没有 Node.js 客户端,我们建议使用GCloud-Node库。

使用 JavaScript 客户端处理调整大小

我们正在使用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) 应该有很多优点,所以我建议你投票支持他的答案。

您还可以使用 Firebase Storage + 官方 Firebase Resize Image扩展: https://firebase.google.com/products/extensions/firebase-storage-resize-images 这里的缺点是“要安装扩展,您的项目必须在 Blaze(现收现付)计划中”。 Bc 基本上它会做的是为你启动一个 Firebase Function 应用程序,每次你将文件上传到你指定的路径时它都会被触发。 您可以配置所需的大小和格式,或者是否要保留原始文件的副本。 好在您无需担心底层实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM