如何在将图像上传到 Firebase 之前调整图像大小?

2024-04-22

我之前看到过这个问题,但没有一个解决方案真正适合我的情况。

除了节省一些空间之外,我还想节省从 Firebase 存储上传/下载内容的时间。由于 firebase 使用图像 uri,我想不出实现此目的的正确方法。

解决方案可能是创建一个“副本”到缓存或一些临时文件以调整大小、裁剪等,然后将该副本上传到存储。但是我不知道这是否是一个好方法,而且我真的不知道该怎么做。

你会建议一些方法来做到这一点吗?我真的很欣赏例子。


您可以使用一些定制的libraries用于压缩图像和视频等媒体文件。例如:压缩机是一个很好的图像压缩库:https://github.com/zetbaitsu/Compressor https://github.com/zetbaitsu/Compressor

压缩图像并上传Firebase Storage你可以简单地做这样的事情:

try {
                Bitmap bitmap = new Compressor(this)
                        .setMaxHeight(200) //Set height and width
                        .setMaxWidth(200)
                        .setQuality(100) // Set Quality
                        .compressToBitmap(file);
            } catch (IOException e) {
                e.printStackTrace();
            }

            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
            final byte[] bytes = baos.toByteArray();

然后在调用和设置时UploadTask:

UploadTask uploadTask = StorageReference.putBytes(bytes);

当然还有一些其他的libraries like:

硅压缩机

https://github.com/Tourenathan-G5organization/SiliCompressor https://github.com/Tourenathan-G5organisation/SiliCompressor

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在将图像上传到 Firebase 之前调整图像大小? 的相关文章

  • Java 将字节转换为二进制安全字符串

    我有一些以字节为单位的数据 我想将它们放入Redis中 但是Redis只接受二进制安全字符串 而我的数据有一些二进制非安全字节 那么如何将这些字节转换为二进制安全字符串以便将它们保存到 Redis 中呢 Base64 对我有用 但它使数据更
  • 在InputMethodService 外部调用InputMethodManager.setInputMethod(IBinder token, String id)。哪里可以找到代币?

    我想通过单击按钮在我的 EditText 上显示 Google 语音输入 IME 所以 根据this http android developers blogspot ru 2011 12 add voice typing to your
  • Android 连接有时会被拒绝(并非所有时候)

    我编写了一个 WiFi Direct 代码连接并在它们之间创建了一个连接 然后我创建了一个ServerSocket在第一面和一个Socket在客户端并开始在它们之间发送数据 第一次启动应用程序时它工作成功 但是当我关闭应用程序并再次启动它时
  • Android Youtube API 可用吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有适用于 Android 的 YouTube API 吗 如果不是 除了通过网络浏览器之外 如何从 Yo
  • Android - 具有可序列化对象的 SharedPreferences

    我知道 SharedPreferences 有putString putFloat putLong putInt and putBoolean 但我需要存储一个类型的对象Serializable in SharedPreferences 我
  • android sqlite 如果不存在则创建表

    创建新表时遇到一点问题 当我使用 CREATE TABLE 命令时 我的新表按应有的方式形成 但是当我退出活动时 应用程序崩溃 并且我在 logcat 中得到一个表已存在 如果我使用 CREATE TABLE IF NOT EXISTS 则
  • Android 简单 TextView 动画

    我有一个 TextView 我想倒计时 3 2 1 发生了事情 为了使其更有趣 我希望每个数字都以完全不透明开始 然后淡出至透明 有没有一种简单的方法可以做到这一点 尝试这样的事情 private void countDown final
  • 比较和删除列表和数组java中不存在的元素

    我有一个String数组和一List
  • 如何使用 UUID 生成唯一的正 Long

    我需要为我的数据库主键列生成唯一的长 ID 我以为我可以用UUID randomUUID getMostSignificantBits 但有时它也会产生一些负多头 这对我来说是个问题 是否可以从 UUID 中仅生成正长 将会有数十亿个条目
  • JSP 作为电子邮件模板

    有没有办法发送 MIME 电子邮件 其中电子邮件正文源自 JSP 我需要使用 Javamail 发送一封电子邮件 其中包含一个表格 我认为如果我可以使用 JSP 来完成所有格式设置和布局 将会很方便 在这个线程中 Java 电子邮件模板的建
  • 如何在Webview中保存用户名和密码

    目前 我还在学习Android开发的过程中 所以如果我的这个问题对你来说不太容易理解 请原谅 我创建了一个 Android 应用程序 它使用 RecyclerView 显示一组列表 当用户单击列表中的每个名称时 它会将它们重定向到一组不同的
  • 相当于 C# 中 Java 的“ByteBuffer.putType()”

    我正在尝试通过从 Java 移植代码来格式化 C 中的字节数组 在 Java 中 使用方法 buf putInt value buf putShort buf putDouble 等等 但我不知道如何将其移植到 C 我尝试过 MemoryS
  • Maven `help: effective-pom` 只为单个项目生成,而不是所有项目

    我想为多模块构建中的所有子项目生成有效的 pom The help effective pom文档here http maven apache org plugins maven help plugin usage html The hel
  • 动画结束后更改视图位置

    我开发了一个基于ViewGroup我的问题是我需要在动画结束后保存项目的位置 我打了电话setFillAfter true 在我创建的动画对象中AnimationListener并在其中onAnimationEnd方法调用View layo
  • 如何确保超类的子类方法的线程安全?

    我参加了一次面试 并被要求为以下要求设计一个课程 假设我有一个 A 类 它可以有任意数量的子类 即子类 类 A 有一个名为 doSomething 的方法 该方法是同步的 要求是 A 的所有子类都是强制性的重写 doSomething me
  • RecyclerView 适配器的 Kotlin 泛型

    我正在尝试编写一个通用的 recyclerview 适配器 我找到了几个例子 然而 仍然无法弄清楚如何实现通用适配器 我写的代码是 open abstract class BaseAdapter
  • 如何在对话框中配置自定义按钮?

    这里我有一个自定义对话框 里面有背景 2 ImageButton 问题是 当我尝试为该按钮设置 onclick 侦听器时 程序将返回 NullPointerException 我不知道为什么会发生这种情况 无论如何如何将操作分配给对话框内的
  • Android VideoView 中纵向视频方向错误

    我在 Android 设备上以肖像方向拍摄新视频 如下所示 Intent intent new Intent android provider MediaStore ACTION VIDEO CAPTURE startActivityFor
  • Android 使用非公历

    我正在创建一个DatePickerDialogFragment用户将在其中选择出生日期 我想确保我可以处理非公历日期 我无法更改在我的设备上使用的日历类型 Android 是否允许用户切换日历类型 如果是的话 步骤是什么 到目前为止我还没有
  • 同时有两个操作栏(底部和向上)?

    我需要制作两个操作栏 顺便说一下我正在使用actionBarSherlock 所以我真正需要的是在正常操作栏上放置一个 欢迎屏幕 开关 并添加两个正常的 ActionBar 操作选项 与我需要的类似的是 Gmail 和地图 如下所示 htt

随机推荐

  • 找不到 root.crt postgresql

    我有一个正在使用的 postgres docker 映像 并且正在其上启用 SSL 我希望它进行完全验证 因为我有一个 root crt 并且希望确保所有可以使用 SSL 的证书都经过验证 因此 在我的 docker compose 文件中
  • 使用 Spring 处理会话 ID

    我正在尝试为 GWT 构建一个 Spring 服务器 您可以将其视为 Javascript AJAX 客户端 但我无法决定架构的某一点 Session应该如何创建和使用 显然最简单的方法是使用 HTTP 会话 cookie 等 看起来不错
  • 好斗的。开始爬行后如何更改蜘蛛设置?

    我无法更改解析方法中的蜘蛛设置 但这绝对是一个办法 例如 class SomeSpider BaseSpider name mySpider allowed domains example com start urls http examp
  • PHP 显示不带货币文本的 Money_format

    在PHP中 是否可以使用money format来显示货币而不显示货币或至少以缩写形式显示 目前 我使用 money 1234 56 setlocale LC ALL de DE money money format n money 严重地
  • 在java中编写If语句的另一种方法[重复]

    这个问题在这里已经有答案了 可能的重复 Java 运算符的名称是什么 它有什么作用 https stackoverflow com questions 798545 what is the java operator called and
  • 计算无符号长整型序列中的公共位

    我正在寻找比下面更快的算法 给定一个 64 位无符号整数序列 返回该序列中每个 64 位被设置的次数计数 Example 4608 000000000000000000000000000000000000000000000000000100
  • Chrome JavaScript 调试 - 如何在页面刷新之间保存断点或通过代码中断?

    当使用 Chrome 及其 JavaScript 调试器时 每次重新加载页面 脚本时 我的断点都会丢失 我必须在弹出窗口中查找脚本文件 找到断点的代码行 单击添加它 ETC 有没有办法保存这些断点 以便即使在页面刷新后它也会中断 我使用过的
  • char 和初始化列表

    I d like to pass some numeric byte values via an initializer list a variadic template into an array Is that possible tem
  • Ember数据渲染有很多

    在我的 ember 应用程序中 我有一个模型 App Schedule DS Model extend manager DS belongsTo App Manager embedded true entries DS hasMany Ap
  • 异步运行 PHP 任务

    我正在开发一个较大的 Web 应用程序 后端主要是 PHP 代码中有几个地方我需要完成某些任务 但我不想让用户等待结果 例如 当创建一个新帐户时 我需要向他们发送一封欢迎电子邮件 但是 当他们点击 完成注册 按钮时 我不想让他们等到电子邮件
  • 重命名 Azure 存储表?

    是否无法重命名 Azure 存储表 我似乎无法在网上找到任何东西 甚至是 cmdlet Visual Studio Server Explorer Cloud Storage Studio 或 TableXplorer 中没有此选项 你是对
  • 如何删除 vscode 中这个烦人的 Push Changes 按钮?

    它以前不存在 由于某种原因它最近出现在我的 vscode 中 也许是在更新之后 那么有人知道如何删除这些按钮吗 Thanks 从 v1 69 开始 有新设定 https code visualstudio com updates v1 69
  • Git:忽略公共存储库的文件,但不忽略私有存储库的文件

    我正在通过 git 在 Heroku 上部署 Rails 应用程序 目前 并且还希望有一个公共版本供人们查看 有些文件是敏感的 只能在 heroku 分支中提交和推送 而不是在 public 分支中提交和推送 解决这个问题的最佳方法是什么
  • 如何手动验证 SAMLResponse 签名?

    鉴于以下 SAML 响应 我如何手动验证签名是否有效 我认为我应该依赖元数据中提供的 IDP 证书 而不是响应本身中的证书 尽管它们应该是相同的 有没有办法使用 openssl 或 xmlsec1 命令来执行此操作
  • 根据 C# 的属性之一从列表中删除重复的项目

    我有类型类别的列表 public class MyClass public SomeOtherClass classObj public string BillId public List
  • 在水晶报告中转义字符串中的双引号

    水晶报表函数中如何转义双引号 我的代码 Function GetResult Dim Result As String if the Result ckl B else end if 注意 我使用函数的基本语法 不需要写函数 简单的方法是
  • OpenCV 中的随机顺序洗牌 cv::Mat

    里面没有函数吗OpenCV随机打乱矩阵 按行排序 Input 1 2 3 4 5 6 7 8 9 Output 4 5 6 7 8 9 1 2 3 cv randShuffle 函数似乎只是对整个数组中的元素进行随机排序 我正在使用较新的
  • MySQL 困难 - 平假名和片假名被视为相同

    我试图在 mysql 数据库上获取 su SELECT FROM edict WHERE japanese su 然而我得到了 3 个结果 斯 斯 我尝试使用 作为查询 它也返回相同的结果 SELECT FROM edict WHERE j
  • WinRT 有垃圾收集吗?

    WinRT 有垃圾收集吗 或者它是否像 COM 一样进行引用计数 I found 本文 http www itwriting com blog 4866 a few facts about microsofts new windows ru
  • 如何在将图像上传到 Firebase 之前调整图像大小?

    我之前看到过这个问题 但没有一个解决方案真正适合我的情况 除了节省一些空间之外 我还想节省从 Firebase 存储上传 下载内容的时间 由于 firebase 使用图像 uri 我想不出实现此目的的正确方法 解决方案可能是创建一个 副本