gpt4 book ai didi

java - 使用 BitmapFactory 获取图像上的尺寸可能会出现 OutOfMemoryError,

转载 作者:行者123 更新时间:2023-12-01 15:06:10 25 4
gpt4 key购买 nike

我试图找到一种方法来获取图像的尺寸,这样我就知道如何缩放它。这样做的目的是避免出现这些内存问题。

所以我正在做的是:

BitmapFactory image = new BitmapFactory();
BitmapFactory.Options opts = new BitmapFactory.Options();
image.decodeFile(_path,opts);
if(opts.outHeight > 2048 || opts.outWidth > 2048){
opts.inSampleSize= 2;
}
VIEW.setImageBitmap(image.decodeFile(_path,opts));

问题是,在第一次解码时,如果设备没有足够的内存,则会出错。

我的做法是将其放入 trycatch block 中,然后向 if.... || 添加其他语句。 opts.outHeight == -1 || opts.outWidth == -1){

所以我想知道的是,有没有一种方法可以做我想要的事情,而不会在解码时占用太多内存?毕竟我只需要知道原始图像的高度和宽度。

最佳答案

作为 BitmapFactory.Options opts 的一部分,JustDecodeBounds 中有一个属性,需要将其设置为 true 才能实现这一事实。

如果将其设置为 true,则所有代码都可以正常工作。它根本不构建那么大的图像,只是返回 mimetypes、outheight、outwidth 等。

可以通过访问以下地址获得更多帮助:http://developer.android.com/training/displaying-bitmaps/index.html

关于java - 使用 BitmapFactory 获取图像上的尺寸可能会出现 OutOfMemoryError,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12919409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com