JPEG压缩与原始尺寸相同

时间:2014-09-23 08:21:58

标签: android bitmap compression

我从2天开始就遇到了这个问题: 我想压缩位图(JPEG)。

我在Google和Google上找到了一些有用的信息,但没有一个正常工作。

我的JPEG文件位于资源中。我可以毫无问题地阅读它,检索所有信息。 当我压缩它时,我的byte []数组很好,但是使用decodeByteArray,大小与原始相同。

这里的代码

InputStream in = assets.open(fileName);


Config config = Bitmap.Config.RGB_565;
Options options = new Options();

options.inPreferredConfig = config;

Bitmap bitmap = BitmapFactory.decodeStream(in, null, options);

ByteArrayOutputStream out = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 50, out);
bitmap  = BitmapFactory.decodeStream(new ByteArrayInputStream(out.toByteArray()),null,options);

我不知道该怎么办。 提前感谢您的时间

2 个答案:

答案 0 :(得分:1)

解码与压缩相反:它将其转换为原始像素数据。压缩对于减少存储和传输的文件大小很有用,但是当图像显示时,它会在内存中解压缩到与启动时相同的大小。

如果要缩小原始像素数据,则需要降低分辨率。 ImgScalr库将在这里为您提供帮助:它可以产生非常好的结果。

(但我并不完全确定你是在做什么并试图实现。)

答案 1 :(得分:0)

查看此处的文档..它可以帮助您提供其他提示,例如缩小图像的尺寸..

http://developer.android.com/training/displaying-bitmaps/load-bitmap.html