2012-07-04 26 views
0

有2個應用程序。一個應用程序充當服務器並通過使用以下代碼連續發送桌面屏幕截圖。如何在java中讀取png圖像輸入流

Robot robot=new Robot(); 
OutputStream os; 
BufferedImage image = robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize())); 
ImageIO.write(image, "png", os); 

第二個應用程序是Android應用程序作爲客戶端應用程序,並且必須連續讀取來自inputstream的上述圖像流。

請幫我在客戶端應用程序中從輸入流中讀取png圖像。

謝謝& Registers 迷你。

+0

也有'ImageIO.read(InpusTream)'),你可以寫(和你一樣)並閱讀... –

+0

http://stackoverflow.com/a/5312288/561543 – HerrHo

+0

是否有任何方法可以在不使用java.awt。*包和javax.imageIo。*的情況下讀取png圖像頭? – mini

回答

2

客戶端應用程序中,通過Socket.getInputStream()方法讀取InputStream。

BufferedInputStream in = new BufferedInputStream(socket.getInputStream()); 
BufferedImage image = ImageIO.read(in); 
+0

這裏我沒有使用java.awt包 – mini

+0

由於'ImageIO'會將流封裝到'ImageInputStream'中,我懷疑添加的'BufferedInputStream'會有多大用處。 – MvG

+0

應用程序線程掛在這一行BufferedInputStream in = new BufferedInputStream(socket.getInputStream());由於服務器連續向客戶端發送圖像流。 – mini

0

Android SDK不支持ImageIO.read()方法。即使你可以編譯你的代碼,你的Android應用程序將得到墜毀,有關於失蹤的庫這樣的錯誤:

找不到方法javax.imageio.imageio.read

,我建議是什麼使用位圖而不是這...