public static ImageIcon Lade_BildOverlay(int cam){
Socket sock=null;
BufferedOutputStream out=null;
BufferedInputStream in=null;
String[] rueck;
int hoehe;
int breite;
byte[] bild;
boolean erg=false;
ImageIcon ico1=null;
String ip=Cam.getIP(cam);
int port=Cam.getPort(cam);
try {
breite = Cam.getBildBreite(cam);
hoehe = Cam.getBildHoehe(cam);
int b_groesse = breite*hoehe;
bild = new byte[b_groesse];
//if(erg_snap){
sock = new Socket(ip, port); //Hier die Domain eintragen
out = new BufferedOutputStream(sock.getOutputStream());
in = new BufferedInputStream(sock.getInputStream());
DataInputStream dis = new DataInputStream(in);
String uebergabe1 = "getlastresult\n";
out.write(uebergabe1.getBytes());
out.flush();
String return_wert="";
int semikolon=0;
byte data[] = new byte[1];
boolean end=true;
while(end){
dis.readFully(data);
if(new String(data).compareToIgnoreCase(";")==0){
semikolon++;
return_wert=return_wert+new String(data);
if(semikolon==7){
end=false;
}
}else{
return_wert=return_wert+new String(data);
}
}
StringTokenizer st = new StringTokenizer(return_wert, ";");
int count=0;
int anz_obj=0;
while (st.hasMoreTokens()){
String token=st.nextToken();
count++;
if(count==1){
Cam.setCamUhrzeit(token, cam);
}
if(count==2){
Cam.setCamMessZeit(Integer.parseInt(token), cam);
}
if(count==3){
Cam.setCamStatus(token, cam);
}
if(count==4){
Cam.setCamGesamt(token, cam);
}
if(count==5){
Cam.setCamGut(token, cam);
}
if(count==6){
Cam.setCamSchlecht(token, cam);
}
if(count==7){
anz_obj=Integer.parseInt(token);
Cam.setCamAnzObj(anz_obj, cam);
}
}
return_wert="";
if(anz_obj>0){
semikolon=0;
data = new byte[1];
end=true;
while(end){
dis.readFully(data);
if(new String(data).compareToIgnoreCase(";")==0){
semikolon++;
return_wert=return_wert+new String(data);
if(semikolon==(anz_obj*3)){
end=false;
}
}else{
return_wert=return_wert+new String(data);
}
}
}
Cam.setCamObjErg(return_wert, cam);
int anz_off=0;
int anz_off_new=0;
int off=0;
int leng=b_groesse;
anz_off = in.read(bild,off,leng);
anz_off_new = anz_off;
while (anz_off<b_groesse){
off = anz_off;
leng = leng - anz_off_new;
anz_off_new = in.read(bild,off,leng);
anz_off=anz_off+anz_off_new;
}
in.close();
out.close();
sock.close();
//data Array mit Farbwerten füllen
BufferedImage img = new BufferedImage(breite, hoehe, BufferedImage.TYPE_INT_RGB);
int k=0;
int bild_neu_int[] = new int[b_groesse];
for(int h=0; h<hoehe; h++){
for(int br=0; br<breite; br++){
k=(h*breite)+br;
int bild_int=((int)bild[k])&0xff;
bild_neu_int[k]=bild_int;
}
}
for(int h=0; h<hoehe; h++){
for(int br=0; br<breite; br++){
k=(h*breite)+br;
if(bild_neu_int[k]>247){
if(bild_neu_int[k]==247){
bild_neu_int[k] = Color.white.getRGB();
}else{
if(bild_neu_int[k]==248){
bild_neu_int[k] = new Color(0, 0, 255).getRGB();
}else{
if(bild_neu_int[k]==249){
bild_neu_int[k] = new Color(0, 255, 0).getRGB();
}else{
if(bild_neu_int[k]==250){
bild_neu_int[k] = Color.cyan.getRGB();
}else{
if(bild_neu_int[k]==251){
bild_neu_int[k] = Color.red.getRGB();
}else{
if(bild_neu_int[k]==252){
bild_neu_int[k] = Color.magenta.getRGB();
}else{
if(bild_neu_int[k]==253){
bild_neu_int[k] = Color.yellow.getRGB();
}else{
if(bild_neu_int[k]==254){
bild_neu_int[k] = Color.pink.getRGB();
}else{
if(bild_neu_int[k]==255){
bild_neu_int[k] = new Color(255, 0, 255).getRGB();
}
}
}
}
}
}
}
}
}
}else{
bild_neu_int[k] = new Color(bild_neu_int[k], bild_neu_int[k], bild_neu_int[k]).getRGB();
}
}
}
/* long start_zeit = System.currentTimeMillis();
System.out.println("Zeit:"+(System.currentTimeMillis()-start_zeit));
*/
img.getRaster().setDataElements(0, 0, breite, hoehe, bild_neu_int);
ico1 = new ImageIcon(img);
} catch (IOException ex) {
System.err.println("41"+ex.toString());
System.exit(1);
}finally{
try{
if(in != null){
in.close();
}
if(out != null){
out.close();
}
if(sock != null){
sock.close();
}
} catch (IOException ex) {
System.err.println("5"+ex.toString());
System.exit(1);
}
}
return ico1;
}