gpt4 book ai didi

java - 使用 Android 将图像读取为字节数组:skImageDecoder::Factory 返回 null

转载 作者:行者123 更新时间:2023-12-01 12:07:13 26 4
gpt4 key购买 nike

我有一个 Spring MVC Web 服务,它以字节数组的形式返回图像。输出为 json 格式。格式为png这是图像的代码 fragment 。

BufferedImage img = ImageIO.read(new File(caminho.replace("/", "//")));
imagem = ((DataBufferByte) img.getRaster().getDataBuffer

()).getData();

当我运行服务器时,这是输出:

[{"id":0,"caminhoMDPI":null,"caminhoHDPI":"C:/Users/Marcos/Pictures/postos/drawable-

mdpi/esso_logo.png","caminhoXHDPI":null,"caminhoXXHDPI":null,"imagem":"AAAAAAAAAAAAAAAAAAAAAAA

啊啊啊啊啊啊啊啊啊啊啊……]

最终,其他符号出现在“imagem”字段上。我认为这是对的,但我不是

当然。

在我的 Android 应用程序上,我有一个例程来下载图像并将其作为 blob 存储在数据库中。我收到json格式并用jackson将其转换为类。我已经记录了“imagem”字段,它看起来是一样的。

我的问题是我无法将其转换为图像。这是代码 fragment :

byte[] img_bandeira = cursor.getBlob(cursor.getColumnIndex("img_bandeira"));
Bitmap bmpBandeira = BitmapFactory.decodeByteArray(img_bandeira, 0, img_bandeira.length);
ImageView ivBandeira = (ImageView) view.findViewById(R.id.ivBandeira);
ivBandeira.setImageBitmap(bmpBandeira);

我收到的只是一条消息:skImageDecoder::Factory 返回 null。

我看过其他类似的帖子,尝试更改一些行,但没有任何反应。我不知道这里发生了什么事。提前致谢。

最佳答案

我解决了。在服务器中,图像应该这样发送:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
BufferedImage img = ImageIO.read(new File(caminho.replace("/", "//")));
ImageIO.write(img, "png", baos);
baos.flush();
String base64String = Base64.encode(baos.toByteArray());
baos.close();

在我的应用程序中,它应该这样读:

public static Bitmap getImage(byte[] imageArray) {
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(imageArray);
Bitmap bitmap = BitmapFactory.decodeStream(byteArrayInputStream);
return bitmap;
}

谢谢大家;)

关于java - 使用 Android 将图像读取为字节数组:skImageDecoder::Factory 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27505374/

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