2017-05-10 47 views
0

我正在使用JavaFx編寫JAVA程序。有兩個程序。每個程序的職責是服務器和客戶端。客戶端將圖像發送到服務器。我用ImageView類來處理圖像。要將圖像發送到服務器,我想我將創建一個int的二維數組,並將圖像的每個像素存儲在數組中,以便通過套接字將其發送。 但是,ImageView類沒有處理像素的方法。我發現Image類確實有它。我不想改變班級。所以沒有人知道如何處理這個問題。此外,下面的圖片是我寫的:是否有可能使用類圖像方法,即使對象是ImageView

public void sendImage(ImageView sentObject) 
    { 
    int[][] pixel= new int[592][559]; 
    try 
     { 
     for(int j=0;j<559;j++) 
      { 
      for(int i=0;i<592;i++) 
      pixel[i][j]=sentObject.getPixelReader().getColor(i,j); 
      } 
     ObjectOutputStream out = new ObjectOutputStream(client.getOutputStream()); 
     out.writeObject(sentObject); 
     out.flush(); 
     } 
    catch(IOException IO) 
     { 
     IO.printStackTrace(); 
     } 
    } 

但是,它得到了一個錯誤:

error: cannot find symbol 
       pixel[i][j]=sentObject.getPixelReader().getColor(i,j); 
            ^
    symbol: method getPixelReader() 
    location: variable sentObject of type ImageView 

下面是層次結構[1]:

enter image description here

參考

  1. https://docs.oracle.com/javase/8/javafx/api/javafx/scene/image/package-tree.html
+0

只要使用'sentObject.getImage()getPixelReader(...。 )' –

+0

謝謝James_D。它得到了修復。 – Hajime

回答

0

要發送和接收的Image對象,你可以用javafx.embed.swing.SwingFXUtils其序列通過BufferedImage對象: https://docs.oracle.com/javafx/2/api/javafx/embed/swing/SwingFXUtils.html

你也可以把它寫成圖像文件,然後將該文件發送到服務器,取決於您必須發送多少圖像。

error: cannot find symbol pixel[i][j]=sentObject.getPixelReader().getColor(i,j); ^ symbol: method getPixelReader() location: variable sentObject of type ImageView

在你的榜樣,我不明白你怎麼可以從ImageView指的JavaDoc獲得PixelReader對象: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/image/ImageView.html

相關問題