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

标签 java android spring-mvc jackson

我有一个 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/

相关文章:

java.lang.invoke.MethodHandleStatics.newInternalError(MethodHandleStatics.java :97)

Java:如何将类型强制转换为 "Runtime"类?

java - 下载和运行 .apk 文件时出现解析错误

java - Android java 输入流读取器

javascript - 安卓、苹果登录

java - 接口(interface)常量在实现类的运行时未初始化

android - 发送数据到蓝牙打印机

java - 如何将一个DTO映射到多个实体?

java - 使用 jaxb 注释映射 XML 子子项

java - Spring中使用注解与XML配置的情况?