0

我正在尝试调整谷歌开发人员指南中的代码以调整从 HTTP 获得的大图像的大小。为了调整图像大小,我必须处理一次(使用 Bitmapfactory.decodeStream)以确定它的原始高度和宽度。然后,我必须再次运行 Bitmapfactory.decodeStream 才能调整它的大小。这种方法的问题是我不能两次使用相同的流。如果我这样做,第二个调用 decodeStream 将返回 null。

我考虑过首先尝试克隆/复制流,这样我就有两个副本可以使用。但是,这首先会占用内存,这是我试图通过调整图像大小来解决的问题。

4

1 回答 1

2

只需将Bitmap返回的 byBitmapfactory.decodeStream()用于调整大小操作。您不需要对其进行两次解码。你已经有了。

Bitmap b = Bitmapfactory.decodeStream(/* your InputStream */);
// get original dimensions from b
int h = b.getHeight();
int w = b.getWidth();
// resize b to half (actually quarter) size
Bitmap resizedBitmap = Bitmap.createScaledBitmap(b, w/2, h/2, false);
于 2013-08-29T04:00:12.070 回答