Socket BufferedImage senden "ohne speichern"

Bitstubbi

Mitglied
Morgen zusammen.

Ich möchte ein Bild von GUI zu GUI schicken (also nur von links nach rechts) jedoch hab ich Probleme mit dem Serialisieren des BufferedImage. Bisher hat google//Sufu ergeben, das man das Image runterbrechen muss. Jedoch haben diese Lösungen das Bild nur übertragen und nicht in einer Gui angezeigt. Ich möchte das bild auch gar nicht speichern. auf Knopfdruck soll eigentlich nur EIN Screenshot übertragen werden.
Code:
java.io.NotSerializableException: java.awt.image.BufferedImage
Meine bisherige Fehlermeldung ist wohl selbsterklärend. Hier noch ein wenig Code:
Client:
Java:
public class Client implements Runnable{

	private ObjectOutputStream oos = null;
	private BufferedImage screen;
	private Socket c_socket;
	private int port;
	private Capture c;

	public Client(int ip){
		this.port=ip;
		doInit();
		Thread t = new Thread(this);
		t.start();
	}
	
	private void doInit() {
		try {
			c = new Capture();
			c_socket= new Socket("localhost",port);
			oos=new ObjectOutputStream(c_socket.getOutputStream());
			} catch (IOException e) {
			System.err.println(e.toString()+"("+(int)(Math.random()*100)+")");
		}
		
	}
	

	public void run() {
		while(true){
			c.captureScreen();
			screen = c.getScreen();
			System.err.println(screen.getHeight());
		try {
			Thread.sleep(200);
		} catch (InterruptedException e1) {
			System.err.println(e1.toString());
		}
		try {
				System.out.println("send To Server ");
				oos.writeObject(screen);
				oos.flush();
				
			}
			
			catch (IOException e) {
				System.err.println(e.toString());
			}
			
		}
	
	}

	}

Server ist 0815 Empfänger nix erwähnenswertes
 

Timothy Truckle

Top Contributor
Und wo ist jetzt der essenzielle Unterschied, zwischen "das übertragene Bild an einen FileOutPutStream übergeben" und "das übertragene Bild an eine GUI-Komponente übergeben"?

bye
TT
 

Bitstubbi

Mitglied
Also muss ich das folglich runterbrechen? ... nun ja außer das man nicht mit .IO arbeiten muss gibt es eigentlich keinen. Finde kein aussagekräftiges Beispiel Seite in der API, damit wäre mir schon geholfen. Es wird immer zuerst das Bild gespeichert, dann angezeigt.
 
T

tröööt

Gast
grundsätzlich solltest du dir angewöhnen das ein catch-block im besten fall so aussieht

Java:
catch(Exception e)
{
e.printStackTrace();
}

ein einfaches Throwable.toString() reicht meist nicht aus ... klar sagt es aus WAS kaputt is ... aber nicht WO und WARUM ... dafür braucht man den kompletten StackTrace ...


zum problem selbst

BufferedImage kannst du nicht serialisieren ... also nicht einfach in einen ObjectOutputStream stecken .. außerdem würde es wenig sinn machen da man sehr viel overhead mitschicken müsste ... denn innerhalb eines BufferedImages werden die daten RAW gespeichert ... also mindestens (höhe x breite) x 4 ... und selbst wenn man es durch n compress-stream schiebt wird sich das nicht viel bessern ...

also nutzt man hier ImageIO ... und anstatt das bild in eine datei zu schreiben schiebt man es direkt in den stream ... welchen algorithmus man anwendet um z.b. bandbreite zu sparen oder die qualität zu erhalten ist sicherlich abhängig von der aufgabe ...

auch sollte man es interpoliert machen ... also nur die unterschiede schicken statt jedes mal ein komplettes bild ... das macht video-streaming überhaupt erst sinnvoll möglich ... was jetzt bei einzelnen screen-shots eher weniger ein problem sein sollte ... aber nur so als beigeschmack mal im hinterkopf behalten ...


was du mit "bild speichern" meinst ist mir auch nicht wirklich klar ... es ist doch völlig egal in was für einen stream du letztendlich schreibst ... so lange es ein OutputStream ist und die methode einen solchen verlangt musst du dich über das ziel nicht kümmern
 
T

tröööt

Gast
Also die API sagt:
JLabel (Java Platform SE 7 )
In in Icon (Java Platform SE 7 ) sieht mann, dass es von [JAPI]ImageIcon[/JAPI] implementiert wird, welches ein Vorfahre von [JAPI]BufferedImage[/JAPI] ist.

Noch Fragen Kiensle?

bye
TT

ich denke das problem dürfte weniger das anzeigen als das übertragen sein ... und da "Icon" nun mal NICHT Serializable implementiert kann man es wie auch immer nicht durch einen ObjectOutputStream schicken
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M BufferedImage an PHP-Script senden Netzwerkprogrammierung 4
D BufferedImage über das Netzwerk senden Netzwerkprogrammierung 2
V jpg vom FTP-Server als BufferedImage laden Netzwerkprogrammierung 4
N java.awt.image.BufferedImage über Socket schicken Netzwerkprogrammierung 3
OnDemand Daten per API senden, parallel Netzwerkprogrammierung 9
M Socket Senden an alle verbundenen Clients Netzwerkprogrammierung 3
S Socket Bilder über Socket Senden Netzwerkprogrammierung 0
E Socket Befehl senden und antowrt bekommen ! Netzwerkprogrammierung 1
S Daten über TCP/IP senden Netzwerkprogrammierung 3
L Strings an Server senden und in MYSQL speichern? Netzwerkprogrammierung 3
L Socket Nachrichten senden Netzwerkprogrammierung 3
D Socket Message an einen Server senden? Netzwerkprogrammierung 8
J HTTP Befehl via HTTP senden ohne Browser öffnen Netzwerkprogrammierung 3
B Java+Grbl: G-Code Befehle mit Java an Arduino senden und lesen Netzwerkprogrammierung 1
M Socket Bilder senden Netzwerkprogrammierung 1
H HTTP REST Jersey - PUT-Beispiel von Client senden Netzwerkprogrammierung 0
W Socket Byte Array senden Netzwerkprogrammierung 2
G Mail senden funktioniert nicht mit SSL Netzwerkprogrammierung 7
M MultiClient Server - Senden an alle Clients Netzwerkprogrammierung 8
X UDP - Zu großes Paket senden Netzwerkprogrammierung 1
fLooojava Daten an ein Arduino im selben Netzwerk senden Netzwerkprogrammierung 1
A Problem beim Senden von Client zu Server Netzwerkprogrammierung 10
M Teilnehmerliste vom Server auch an alle Clients senden Netzwerkprogrammierung 0
S Server - Mehrere Klassen sollen Daten senden und empfangen Netzwerkprogrammierung 25
I Kleine Dateien senden Netzwerkprogrammierung 3
K ByteArray über Netzwerk senden klappt nicht Netzwerkprogrammierung 5
S Server-Client: Image senden Netzwerkprogrammierung 2
P Socket Daten senden mit ServerSocket? Netzwerkprogrammierung 2
Z Socket Probleme beim Senden und Empfangen Netzwerkprogrammierung 5
Z Probleme beim Senden von Nachrichten an den Server Netzwerkprogrammierung 9
K Socket Senden und abspeichern Netzwerkprogrammierung 34
T ArrayList über Netzwerk senden! Netzwerkprogrammierung 5
M Gleicher Port für Senden und Empfangen ? Netzwerkprogrammierung 17
N Problem über http eine Datei zu senden Netzwerkprogrammierung 4
T Empfangen klappt Senden nicht - Connection timed out Netzwerkprogrammierung 12
D Strings per Schleife zum Client senden Netzwerkprogrammierung 4
D daten per post senden Netzwerkprogrammierung 3
M Senden von Daten nicht direkt möglich? Netzwerkprogrammierung 6
B SSH mit Jsch, mehrere Befehle senden Netzwerkprogrammierung 4
A Socket Server: Message an verschiedene Clients senden Netzwerkprogrammierung 4
F Verschiedene Datentypen senden Netzwerkprogrammierung 4
M Befehle an externes Java-Programm senden Netzwerkprogrammierung 8
1 Datei senden/empfangen funzt nicht... Netzwerkprogrammierung 5
M Objekt über socket senden/empfangen Netzwerkprogrammierung 3
Weltall 7 HTTP Dateien an PHP-Skript senden Netzwerkprogrammierung 11
T Outputstream Byte-Array senden Netzwerkprogrammierung 2
N Senden eines Arrays Netzwerkprogrammierung 6
F Char über Netzwerk senden Netzwerkprogrammierung 6
C Befehle über ein GUI an Server senden Netzwerkprogrammierung 15
J Befehle an Server senden Netzwerkprogrammierung 5
L Zeitspanne für erneutes senden Netzwerkprogrammierung 16
Kr0e Ggf. Performanceproblem durch Senden von vielen kleinen Buffern Netzwerkprogrammierung 17
S Socket OutputStreams senden zu oft Netzwerkprogrammierung 6
D Probleme bei mehreren Clients uns Senden von Messages Netzwerkprogrammierung 16
F Erhalten und Senden von Nachrichten anhand des Indexes des Clients Netzwerkprogrammierung 19
Akrillo Datei per Netzwerk senden Netzwerkprogrammierung 10
KeNnY_tHe_OwNeR Empfangen geht, Senden nicht ?! Netzwerkprogrammierung 18
B Befehle an Gameserver senden bzw. empfangen Netzwerkprogrammierung 2
P Probleme beim weiter senden von Datein Netzwerkprogrammierung 10
T HttpClient - Senden via Post Netzwerkprogrammierung 12
Q Datein von Windows nach Mac senden Netzwerkprogrammierung 4
S Bild-Datei von Servlet an Browser senden Netzwerkprogrammierung 8
M Dateien über TCP/IP senden Netzwerkprogrammierung 18
Q NullPointExeption beim Versuch byte[] zu senden/writen Netzwerkprogrammierung 3
S Probleme beim senden von Daten per POST Methode an PHP Scrip Netzwerkprogrammierung 5
R Mehrere Dateien über einen Socket senden Netzwerkprogrammierung 2
F Daten senden und empfangen mit Applet Netzwerkprogrammierung 8
G Information an Server senden? Netzwerkprogrammierung 4
D PDF und integer senden Netzwerkprogrammierung 6
J Problem beim Senden von File Netzwerkprogrammierung 4
S String[] über Socket senden Netzwerkprogrammierung 3
G unbekannte Zeichen beim senden und lesen Netzwerkprogrammierung 2
V Mehrere Streams durch einen Stream senden Netzwerkprogrammierung 14
T Image aus Applet an PHP Seite senden? Netzwerkprogrammierung 3
C Flash Daten an Java senden, wie serialisieren? Netzwerkprogrammierung 3
A Broadcast - senden eines Packetes an alle rechner im netz Netzwerkprogrammierung 15
R Bytes als Rohdaten über Socket senden Netzwerkprogrammierung 3
E rxtx serielles senden von Daten Netzwerkprogrammierung 2
D Socket, Daten über BufferedWriter senden Netzwerkprogrammierung 18
V Problem beim Senden von Dateien Netzwerkprogrammierung 4
W Hexadezimal über RS232 senden Netzwerkprogrammierung 9
L webformular automatisch erstellen, senden und auswerten . Netzwerkprogrammierung 2
G Anfrage an Suchmaschine senden Netzwerkprogrammierung 11
M TCP Socket und Server int senden und empfangen Netzwerkprogrammierung 6
M datagramSocket senden u. empangen? Netzwerkprogrammierung 2
V Java /Matrizen senden über TCP/IP / double Netzwerkprogrammierung 2
W Socket Client-Server Verbindung. Wie Strings senden? Netzwerkprogrammierung 6
M HTTP Requests verarbeiten und Response senden mit Java Netzwerkprogrammierung 14
G Problem bei Objekt senden von server zu client Netzwerkprogrammierung 6
K RMI und kontinuirliches senden von Datenpacketen Netzwerkprogrammierung 2
N Messwerte über TCP senden Netzwerkprogrammierung 3
F Datei senden und empfangen Netzwerkprogrammierung 4
M Ein HTTP-request aus Java heraus senden Netzwerkprogrammierung 3
N Hexcode an ein Programm senden. Netzwerkprogrammierung 4
I Dateien schnell/synchron senden Netzwerkprogrammierung 2
T Datei senden Netzwerkprogrammierung 3
B Variablen an Server senden Netzwerkprogrammierung 14
R Problem beim Senden von Emails (Javamail) Netzwerkprogrammierung 2
G Strings über Sockets senden Netzwerkprogrammierung 5
J JavaMail Exception bei senden an anderen Server. Netzwerkprogrammierung 8

Ähnliche Java Themen

Neue Themen


Oben