gpt4 book ai didi

android - BitmapFactory 无法对 CipherInputStream 进行两次解码

转载 作者:搜寻专家 更新时间:2023-11-01 09:16:02 25 4
gpt4 key购买 nike

我加密,然后解密一个图像,然后将其传递给我的图像 util 以调整大小,(从某处慷慨地借用代码)像这样:

public static Bitmap loadResizedBitmap(InputStream dis, int width, int height) {

BufferedInputStream bis = new BufferedInputStream(dis);
Bitmap bitmap = null;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeStream(bis, null, options);
if (options.outHeight > 0 && options.outWidth > 0) {
options.inJustDecodeBounds = false;
options.inSampleSize = 2;

while (options.outWidth / options.inSampleSize > width &&
options.outHeight / options.inSampleSize > height) {
options.inSampleSize++;
}
options.inSampleSize--;
bitmap = BitmapFactory.decodeStream(bis, null, options);
}
return bitmap;
}

问题是在第二个 decodeStream 期间,BitmapFactory 返回 null。我已经验证了第一个有效,并输出了正确的大小等。我的猜测是 CipherInputStream 不支持标记和重置,所以我将它包装在 BufferedInputStream 中但没有运气。还有其他人有什么建议吗?

最佳答案

[已回答]

我将其切换为使用 BitmapFactory.decodeByteArray 并解决了它。我再次查看了 API,我能够传递一个 byte[]。

我的结论是 CipherInputStream 不支持 mark() 和 reset()。

关于android - BitmapFactory 无法对 CipherInputStream 进行两次解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4622277/

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