我需要在创建图像之前缩放图像,并且只有在超过1024KB(例如)时才需要。如何在创建位图之前从InputStream获知位图大小?
通过执行以下操作,我可以缩放图像,但我只需要规模是大于给定尺寸更大的人。
Bitmap bmImg = null;
InputStream is = url.openStream();
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inSampleSize = 10;
bmImg = BitmapFactory.decodeStream(is,null,opts);
我怎样才能得到位图的大小? (我很高兴知道字节数量,而不是解压缩后的大小)。
编辑:
我想这一点:
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inJustDecodeBounds = true;
Bitmap bmImg=BitmapFactory.decodeStream(is,null,opts);
Log.e("optwidth",opts.outWidth+"");
Bitmap bmImg1 = BitmapFactory.decodeStream(is);
我第一次使用的InputStream(是),将其与“inJustDecodeBounds”解码工作正常,我可以得到位图尺寸。 问题是,我第二次使用它来实际解码图像,没有图像显示。
我在做什么错?
这实际上有效,但它的方式更慢。 – sergi 2011-01-09 00:27:31