【发布时间】:2012-03-16 11:32:35
【问题描述】:
我想将图像从 Android 发送到服务器。我将图像解码为 Base64 字符串并将其发送到服务器。我使用以下代码将图像转换为字符串
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.icon);
ByteArrayOutputStream bao = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bao);
byte [] byteArray = bao.toByteArray();
String imageToString=Base64.encodeToString(byteArray,Base64.DEFAULT);
return imageToString;
现在我无法在服务器端将其转换回图像。我试过这个
byte[] imageBytes=Base64.decode(imageString);
InputStream in = new ByteArrayInputStream(imageBytes);
BufferedImage bImageFromConvert = ImageIO.read(in);
ImageIO.write(bImageFromConvert, "jpg", new File("D:\\myImage.jpg"));
我收到 Bogus Huffman 表定义 异常,有时还有 im = null 异常。请告诉我我犯了什么错误
编辑:错误消息 javax.imageio.IIOException: Bogus Huffman table definition 在这一行
BufferedImage bImageFromConvert = ImageIO.read(in);
【问题讨论】:
-
错误 a) 您没有发布错误消息。 b) 检查您是否可以将
Base64.decode()输出保存为文件并使用任何图像查看器打开它/与您的原始数据进行比较。
标签: android string image base64