gpt4 book ai didi

java - DecodeStream 在存储位图中时抛出 null

转载 作者:行者123 更新时间:2023-12-02 07:55:35 25 4
gpt4 key购买 nike

这是我的代码...我在 imageBitmap = BitmapFactory.decodeStream(is2,null, options); 处收到异常 NULL;

第一次可以解码,但为什么现在,decodeStream 抛出 null ?

 public void showImageThumb(FileInputStream is)
{
final int IMAGE_MAX_SIZE = 100;
FileInputStream is2 = is;
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 4;
Bitmap imageBitmap = BitmapFactory.decodeStream(is,null, options);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int height = options.outHeight;
int width = options.outWidth;
int scale = 1;
if ( height > IMAGE_MAX_SIZE || width > IMAGE_MAX_SIZE)
{
scale = (int)Math.pow(2, (int) Math.round(Math.log(IMAGE_MAX_SIZE / (double) Math.max(options.outHeight, options.outWidth)) / Math.log(0.5)));
}
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
options = new BitmapFactory.Options();
options.inSampleSize = scale*2;
imageBitmap = BitmapFactory.decodeStream(is2,null, options);
height = options.outHeight;
width = options.outWidth;
imageBitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); //ERROR HERE
imageSelectedThumb = baos.toByteArray();

最佳答案

你会得到一个空指针异常,因为你正在复制

is

引用位于

is2

所以当你关闭is时,你也关闭了is2。您必须创建一个新的 InpustStream

而不是将 is 分配给 is2

关于java - DecodeStream 在存储位图中时抛出 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9698241/

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