我从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);
我不知道该怎么办。 提前感谢您的时间
答案 0 :(得分:1)
解码与压缩相反:它将其转换为原始像素数据。压缩对于减少存储和传输的文件大小很有用,但是当图像显示时,它会在内存中解压缩到与启动时相同的大小。
如果要缩小原始像素数据,则需要降低分辨率。 ImgScalr库将在这里为您提供帮助:它可以产生非常好的结果。
(但我并不完全确定你是在做什么并试图实现。)
答案 1 :(得分:0)
查看此处的文档..它可以帮助您提供其他提示,例如缩小图像的尺寸..
http://developer.android.com/training/displaying-bitmaps/load-bitmap.html