如何将Java应用程序中的图像转换为Android设备上的位图形式

3

我写了一个Java应用程序,从网络摄像头创建一些图像,它们的格式是java.awt.Image。但是我想在我的Android设备上显示这些图像,然而ADK不包括java.awt

我想在Java应用程序中进行转换,并通过将Image转换为Bitmap,然后通过套接字连接将其传输到Android来显示该图像。

我谷歌搜索了解决方案,一些示例使用了BitmapFactory.decodeResource,但在这种情况下似乎没有用。

///// 2012/4/15 添加////////////

我使用了这个方法,但不起作用,请问有什么问题吗?

/////输出/////

ByteArrayOutputStream baos = new ByteArrayOutputStream();
try { ImageIO.write(image, "png", baos); } catch (IOException e) {e.printStackTrace();}
byte[] data = baos.toByteArray();
int len =data.length; oos.writeInt(len); oos.flush(); oos.write(data); oos.flush();

/////输入/////

int size =dis.readInt(); byte []data=new byte[size]; dis.read(data); image = BitmapFactory.decodeByteArray(data, 0, data.length);

2个回答

3

把图像转换为JPEG或PNG字节数组并发送。在Android上可以解码InputStream。


我使用了这段代码,但它没有工作,这里有什么问题吗?/////输出///// ByteArrayOutputStream baos = new ByteArrayOutputStream();
try { ImageIO.write(image, "png", baos); } catch (IOException e) {e.printStackTrace();}
byte[] data = baos.toByteArray();
int len =data.length; oos.writeInt(len); oos.flush(); oos.write(data); oos.flush();/////输入///// int size =dis.readInt(); byte []data=new byte[size]; dis.read(data); image = BitmapFactory.decodeByteArray(data, 0, data.length);
- JackSie

0
你可以看一下这个:在Java中保存位图文件 在代码中,你可以用缓冲区代替文件,发送并像从文件中加载一样在Android上加载它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接