带有 inJustDecodeBounds=true 的 BitmapFactory.decodeStream 始终返回 100x100

Posted

技术标签:

【中文标题】带有 inJustDecodeBounds=true 的 BitmapFactory.decodeStream 始终返回 100x100【英文标题】:BitmapFactory.decodeStream with inJustDecodeBounds=true always return 100x100 【发布时间】:2012-09-21 07:26:59 【问题描述】:

这是我的安卓代码:

InputStream input = getAssets().open("photo.jpg");
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeStream(input, null, options);
System.out.println("### img size: " + options.outWidth + "x" + options.outHeight);

但我发现无论我的图像有多大,它总是打印出来:

### img size: 100x100

哪里错了?


更新

重新部署我的应用程序后它工作正常,但我没有修改任何内容。这很奇怪,但我想把这个问题留在这里,也许有一天它会再次出现。

【问题讨论】:

InputStream 输入=???????????? 你在哪里测试这个?在手机或模拟器上? 在我的安卓平板上。我不知道为什么在重新部署我的应用程序后它现在很好 - 我没有修改任何内容...... 【参考方案1】:

//读取位图尺寸和类型

BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(getResources(), R.id.myimage, options);
int imageHeight = options.outHeight;
int imageWidth = options.outWidth;
String imageType = options.outMimeType;

Ref here:

//你没有指定对象名称

InputStream input = getAssets().open("photo.jpg");

BitmapFactory 类提供了几种解码方法(decodeByteArray(), decodeFile(), decodeResource() 等)用于从各种来源创建位图。

【讨论】:

对不起,这里没有resource,只是一个流。

以上是关于带有 inJustDecodeBounds=true 的 BitmapFactory.decodeStream 始终返回 100x100的主要内容,如果未能解决你的问题,请参考以下文章

带有 RecyclerView 的片段:java.lang.IllegalArgumentException:报废或附加的视图可能不会被回收。 isScrap:false isAttached:tru

使用 SwiftUI 移动带有图像的按钮

带有数组元素的Vue Js逻辑条件

使用带有窗口的多个条件按组更新列

在 postgresql 表中存储带有区域的客户端日期时间

在springboot反序列化器中包含带有jackson的根对象