我可以减小从 Firebase 带来的图像的大小吗?

Posted

技术标签:

【中文标题】我可以减小从 Firebase 带来的图像的大小吗?【英文标题】:Can I reduce the size of the image I bring from firebase? 【发布时间】:2022-01-05 19:22:38 【问题描述】:

从Firebase Storage导入图片放入ImageView时出现图片不可见的问题。

在我看来,原因是图片的尺寸很大。

当我导入我保留的图像时,我认为我需要减小图像的大小。有解决办法吗?

这是我的代码。

part.orderByChild("Art_ID").equalTo(art_id).addValueEventListener(new ValueEventListener() 
                        @Override
                        public void onDataChange(@NonNull DataSnapshot snapshot) 
                            for (DataSnapshot asnap: snapshot.getChildren())
                                Log.i("ValueArtinfo", asnap.getValue().toString());
                                String art_filename = asnap.child("Filename").getValue(String.class);

                                StorageReference sart = storage.getReferenceFromUrl("gs://myaddressxxx.com/Art/" + art_filename +".jpg");
                                // Bitmap bm = BitmapFactory.decodeFile(String.valueOf(sart));
                                // Bitmap bm = ShrinkBitmap(sart, 300, 300);
                                Glide.with(getApplicationContext() ).load(sart).into(str_art);
                            

                        
                        

                        @Override
                        public void onCancelled(@NonNull DatabaseError error) 
                            throw error.toException();
                        
                    );

这是我的 Firebase 存储。可以看到,文件很大,数量在1000左右。

我尝试了以下解决方案,但失败了。

http://android-coding.blogspot.com/2011/06/reduce-bitmap-size-using.html

【问题讨论】:

“大小”是指图像大小还是文件大小? 表示文件大小。 【参考方案1】:

是的,有一个 7 Mb 的图像,可以被认为是一个大尺寸的图像。正如@GokulNathKP 在他的回答中提到的那样,您可以在加载较大的图像时显示缩略图,但这不会解决与图像大小相关的问题。

因此,您最好的选择是从一开始就上传较小尺寸的图片。您可以使用不同的库调整它们的大小,以便最终存储大小合适的图像。通过这种方式,您可以更快地下载并减少支付费用。

【讨论】:

【参考方案2】:

也许您可以尝试加载缩略图,直到实际图像在后台加载,使用 Glide。

示例代码:

Glide.with(context).load("actual-url")
                    .placeholder(R.drawable.placeholder)
                    .thumbnail(0.3f) //Quality 0.1 - 1.0
                    .into(imageHolder);

【讨论】:

以上是关于我可以减小从 Firebase 带来的图像的大小吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在上传到服务器之前减小图像文件大小

从解析仪表板上传时如何减小图像大小

如何在将图像上传到 Firebase 存储之前对其进行压缩?

在上传到Google Cloud存储之前调整图像大小并进行压缩

在android中减小从相机捕获的图像的大小

优化从相机胶卷中挑选的图像以减小文件大小