2017-05-10 1 views
0

Ich schreibe ein Java-Programm mit JavaFx. Es gibt zwei Programme. Die Pflicht jedes Programms ist Server und Client. Der Client sendet das Bild an den Server. Ich verwendete ImageView Klasse, um das Bild zu behandeln. Um das Bild an den Server zu senden, denke ich, ich werde ein zweidimensionales Array von int erstellen und jedes Pixel des Bildes im Array speichern, so dass ich es über einen Sockel senden werde. Allerdings, ImageView Klasse hat keine Methode, um das Pixel zu behandeln. Ich fand, dass Image Klasse es hat. Und ich möchte die Klasse nicht wechseln. Also weiß jemand, wie man mit dem Problem umgeht. Zusätzlich unten ein Bild ist, was ich schrieb:Ist es möglich, die Klasse-Image-Methode verwenden, auch das Objekt ist 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(); 
     } 
    } 

jedoch einen Fehler bekam:

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

Unten ist die Hierarchie [1]:

enter image description here

Referenz

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

Nur 'sentObject.getImage() verwenden getPixelReader (....) ' –

+0

Danke James_D. Es wurde behoben. – Hajime

Antwort

0

Um ein Image Objekt zu senden und empfangen, können Sie es durch ein BufferedImage Objekt mit javafx.embed.swing.SwingFXUtils Serialisierung kann: https://docs.oracle.com/javafx/2/api/javafx/embed/swing/SwingFXUtils.html

Sie können es in eine Bilddatei auch schreiben und dann die Datei an den Server senden, abhängig davon, wie viele Bilder du senden musst.

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

In Ihrem Beispiel verstehe ich nicht, wie man ein PixelReader Objekt aus einer ImageView auf die JavaDoc Bezug erhalten könnte: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/image/ImageView.html

Verwandte Themen