# Grafik in Text umwandeln



## ich_wills_wissen (22. Mai 2007)

Hallo zusammen,

habe letztens irgendwo was von einer Bibliothek gelesen, die Bilder in Buchstabensalat umwandeln kann (z.B. kann man so Grafiken in Strings einbetten und diese dann mit Hilfe dieser Bibliothek (glaube der "Buchstabensalat" folgt irgendeinem Standard)) später wieder zurückumwandeln)..

Kennt jemand zufällig so eine Lib bzw weiß jemand wo ich sowas herbekommen kann ?

Gruß,

ich_wills_wissen


----------



## The_S (22. Mai 2007)

naja, du kannst das bild einfach byte-weiße einlesen und in einem String speichern und später wieder zurück schreiben. Den Sinn dahinter versteh ich aber net so ganz ???:L


----------



## ich_wills_wissen (22. Mai 2007)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> naja, du kannst das bild einfach byte-weiße einlesen und in einem String speichern und später wieder zurück schreiben. Den Sinn dahinter versteh ich aber net so ganz ???:L



Hmm.. das wäre eine Idee, werds mal ausprobieren.. danke! 
Der Sinn? Na, so kann man ganz bequem z.B. an einen Webservice Daten schicken ohne extra-Dateien zusätzlich senden zu müssen..


----------



## The_S (22. Mai 2007)

ich_wills_wissen hat gesagt.:
			
		

> Der Sinn? Na, so kann man ganz bequem z.B. an einen Webservice Daten schicken ohne extra-Dateien zusätzlich senden zu müssen..



fränkisches Fragewort mit 2 Buchstaben ... *Hä*?


----------



## ich_wills_wissen (22. Mai 2007)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> fränkisches Fragewort mit 2 Buchstaben ... *Hä*?



Ahjo.. wenn ich z.B. eine html-seite wegschicke und da bilder drin verlinkt sind, die aber nur lokal auf dem rechner verfügbar sind kann ich die bilder einfach "umgewandelt" (Buchstabensalat) in den html-string reinschreiben und dann zum webservice schicken, der dann das ganze weiterverarbeitet/verschickt/abspeichert/was auch immer


----------



## Roar (22. Mai 2007)

base64 heißt das was du suchst.

> byte-weiße 
pipi in den augen :autsch:


----------



## ich_wills_wissen (22. Mai 2007)

Roar hat gesagt.:
			
		

> base64 heißt das was du suchst.
> 
> > byte-weiße
> pipi in den augen :autsch:



base64.. werds mir mal anschaun, danke!   

Ja Mensch.. byte-weiße.. das ist bestimmt Berliner-weisse für Informatiker.. (was ein flacher..) ;-)


----------



## ich_wills_wissen (18. Jun 2007)

So, wunderbar.. jetzt habe ich das Bild als String und via decode bekomme ich ein byte-array.. 

leider funktioniert das hier


```
FileImageOutputStream fio = new FileImageOutputStream(new File("decodedImage"));
			fio.write(ba);
			fio.flush();
			fio.close();
```
nicht weil die JRE (keine Sun) mit dem FileImageOutputStream nicht klar kommt.. 
Wie kann ich denn noch einfach die bytes aus dem Array in eine Datei schreiben?

Die FileWriter-methoden nehmen kein byte-array als Argument an..  :cry: 

Gruß,

ich_wills_wissen


----------



## The_S (18. Jun 2007)

BufferedOutputStream, FileOutputStream, ...


----------



## ich_wills_wissen (18. Jun 2007)

BufferedOutPutStream, jo, damit hat es jetzt funktioniert, danke ! 

Hmm.. allerdings ist das jetzt komisch.. ich habe mir mit


```
String result1 = Base64.encodeObject( new File("C:\\Dokumente und Einstellungen\\Administrator\\Desktop\\Logo.png") );
		  System.out.println(result1);
```

das Bild in einen String umwandeln lassen. Wenn ich das aber veruche rückgängig zu machen


```
byte[] ba = Base64.decode(result1);
		  
		  try 
		  {
			BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("decodedImage"));
			bos.write(ba);
			bos.flush();
			bos.close();
		  } 
		  catch (FileNotFoundException e) 
		  {
			// TODO Auto-generated catch block
			e.printStackTrace();
		  } catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
```

Legt der zwar die Datei an, dasist dann aber kein Bild.. wenn ich die Datei mit einem Editor öffne steht da:



> ¬í
> java.io.File-¤E
> <kryptische Zeichen>Ljava/lang/String;[
> properPathtEC:\Dokumente und Einstellungen\Administrator\Desktop\Logo.png pw


Die Datei (1 kb) ist auch deutlich kleiner als das ursprüngliche Bild (2,5kb).

Jetzt weiß ich nichtmehr weiter.. :-/


----------



## Guest (19. Jun 2007)

Problem gelöst, hab die falsche methode benutzt  :roll: 
es muss Base64.encodeFromFile(blablba) heissen..


----------



## ich_wills_wissen (19. Jun 2007)

sorry, vergessen anzumelden..


----------

