滑动 - 下载GIF并将其调整为文件大小

时间:2016-10-19 11:00:49

标签: android android-glide

我需要下载GIF并将其保存到外部存储,以便我可以通过MMS发送。消息限制为300kb,大多数GIF太大,所以我需要调整它们的大小。

我在我的项目的其余部分使用Glide并且Glide有一个漂亮的功能,理论上应该下载一个调整大小的图像。但它并没有。

简而言之,这是我在后台线程中调用的代码:

byte[] bytes = Glide.with(context)
                    .load(url)
                    .asGif()
                    .toBytes()
                    .into(250, 250)
                    .get();
file = new File(fileName);

FileOutputStream fileWriter = new FileOutputStream(file);
fileWriter.write(bytes);
fileWriter.flush();
fileWriter.close();

下载的文件仍然保持其原始大小,高于MMS限制300kb,而它们应该是250x250像素。

2 个答案:

答案 0 :(得分:0)

您也可以压缩该文件,然后存储在数据库中 此链接将帮助您。在第一次转换.gif到.png然后使用它。 Android - Best way to convert .gif to .png

答案 1 :(得分:0)

在Glide Github上问了同样的问题并得到了答案。显然Glide只会调整大于500 x 500的图像,除非使用fitCenter()(或任何其他)转换。

因此,要调整.gif文件的大小,请使用以下代码:

byte[] bytes = Glide.with(context)
                        .load(url)
                        .asGif()
                        .toBytes()
                        .transform(new GifDrawableTransformation(new CenterCrop(context), Glide.get(context).getBitmapPool()))
                        .into(250, 250)
                        .get();