【发布时间】:2012-10-09 09:53:50
【问题描述】:
我正在制作一个应用程序,用于将图像从 android 设备发送到在 PC 上运行的 java 应用程序。客户端(android)上的图像是Bitmap,我将其转换为Byte Array,以便通过蓝牙将其发送到服务器。
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageBitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] b = baos.toByteArray();
mBluetoothService.write(b);
请注意,位图来自一个已经压缩的文件,所以我不需要再次压缩它。
我在服务器(Java)上使用以下代码:
byte[] buffer = new byte[1024*1024];
int bytes;
bytes = inputStream.read(buffer);
ByteArrayInputStream bais = new ByteArrayInputStream(buffer);
BufferedImage image = ImageIO.read(bais);
ImageIO.write(image, "jpg", new File("c:/users/image.jpg"));
客户端没有错误。但是我在服务器端(java应用程序)得到了这个异常:
java.lang.IllegalArgumentException: im == null!
在 javax.imageio.ImageIO.write(Unknown Source)
在 javax.imageio.ImageIO.write(Unknown Source)
在 com.luugiathuy.apps.remotebluetooth.ProcessConnectionThread.run(ProcessConnectionThread.java:68)
在 java.lang.Thread.run(未知来源)
所以ImageIO.read() 没有返回任何东西。似乎它无法将字节数组识别为图像。我在互联网上搜索过,但没有任何东西可以帮助我解决这个问题。有人知道吗?
非常感谢!!
【问题讨论】:
-
java.lang.IllegalArgumentException: im == null!在 javax.imageio.ImageIO.write(Unknown Source) 在 javax.imageio.ImageIO.write(Unknown Source) 在 com.luugiathuy.apps.remotebluetooth.ProcessConnectionThread.run(ProcessConnectionThread.java:68) 在 java.lang.Thread。运行(未知来源)
-
编辑您的问题并发布您的整个 logcat,以便社区成员可以帮助您,而不仅仅是部分内容