我需要在創建圖像之前縮放圖像,並且只有在超過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