Datentypen Bild in Programmcode integrieren

  • Themenstarter Themenstarter delicious1985
  • Beginndatum Beginndatum
D

delicious1985

Gast
Guten Tag alle zusammen,

ich bin ein Newbie, also bitte ich um etwas Nachsicht.

Ich möchte eine Bilddatei (sagen wir ein kleines Icon im .gif Format) direkt in meinen Quelltext einbinden um es ohne weiteres externes Laden von Dateien verfügbar zu haben.
Ob nun Binär oder Hexadezimal ist mir egal, da bin ich offen für Lösungsvorschläge.

Wie kann ich ein Bild (Beispiel.gif oder Beispiel.jpg) denn jetzt in den Java quelltext einbinden um es dann dort zu benutzen ? Und wie wandle ich es erstmal in Binary / Hexadezimal (was auch immer besser geht) um ?

public class Test {

private Binary testbild;

testbild = "010101111000001010000101010110000010100";


}
geht sowas ?

Wie man ein externes Bild läd habe ich irgendwo gespeichert, das bekomme ich wieder hin, aber die Datei in dem Quelltext mit drin zu haben und mit zu Compilieren ist mein Problem.

Vielen Dank für die Lösungsvorschläge. Im Internet finde ich nichts dazu.

Lg Kai
 
Hallo,

ich möchte nur eine .class datei haben und keine externen files und dieses kleine Icon mit verwenden indem ich es in einem JPane mit ausgebe.
 
ja, da kann dann ja jeder mein Bild quasi auslesen wenn er die JAR datei runterläd.
Ich möchte aber dass sie mit in der .class datei drin ist.

Geht das denn nicht irgendwie ? :-( ?

lg
 
Das kann man auch aus der Class Datei auslesen. Wenn überhaupt würde ich das GIF als Bytearray in der Klasse speichern, aber aus meiner Sicht macht das keinen Sinn. Es ist dadurch weder geschützter noch besser aufgehoben,
 
array newArray();

newArray[0] = "12345678";
newArray[1] = "12345678";
...
... ?

so in etwa ? wie bekomme ich das Bild da reinzerlegt ?
1 Byte = 8 Bit, wenn ich mich recht entsinne.

Alle Arrayteile zusammen ergeben dann das gesamte Bild welches ich dann benutzen kann ?
 
ja, nicht ? Ich muss das alles da ja irgendwie reinladen...

In einem .mht File (da speichert der Internetexplorer komplette webseiten mit ab) sind die Bilder auch drin vorhanden... so stell ich mir das vor. 🙂

Aber wie realisier ich das ?
 
Beispiel aus .mht datei von Explorer:

This is a multi-part message in MIME format.

------=_NextPart_000_0005_01CB721B.1B8251C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.java-forum.org/images/misc/java_forum_org.gif

R0lGODlhJgKHAPcAAHSa5LTE5dXZ4JOmzMPL3P39/l12p1aE3eaGUUN22rXB2Z6w1JWp0tTb6uvs
7q3B6Jq16pu05MzR3unq7dfa4MTO4vHx8vT19err7eXo7uHl7myU4tHW4LG+2NLe9IKbzMfQ4pSx
6pGv6fn6/L3K4q272KW11ouj1Jms0t/g4pOs3Y2s6YSaxYOk5r7I3KGy1eXq9Nzd4M7U4LLL/Km4
1+3y/8HM4uTt/46iyeWVae7x9/j4+Nnh8fX2+NXZ3yQ9btHV32mCs+Hm8JCm0ejp6nWNvt7e4V2J
4Mza9X2h5ujt9Z646+Li5Pb4++ldD9zj7szT4ebm6Iqp56zF9uTk5nmRwaS65MrV6vLz86W97LnE
2sjR4uzt78zc/9Th/eWcdLfG5LHD6Km947jF3qG67N7k8Nrg7WKN4YKl6fL0+dzi8MXS7Jew4bzG
...
...
...
 
ok, stimmt, steht da ja auch.

Also ich kann ja jetzt z.B. das Bild in ne HTML datei einbinden, ein MHT draus machen und das so auslesen. (oder sicher mit irgend ner Funktion aus Java in base64 umwandeln)

Wie füge ich es denn dann in die .java datei ein und mache es verwendbar ?

Dann wäre ich glücklich 😱)

Vielen Dank schon mal.
 
Byte-Array funktioniert nicht mehr, wenn das Bild ein paar Kilobyte groß ist. Also wenn es unbedingt sein muss, in einem String kodieren.
Das Bild gleich ins JAR ist natürlich die beste Lösung. Klauen geht immer, zur Not per Screenshoot.
 
Java:
String file = "... base64 kodierter text":
byte[] data = Base64.decode(file);
InputStream in = new ByteArrayInputStream(bytearray);
BufferedImage image = ImageIO.read(in);

Musst dir nur was für Base64 besorgen (das ist dann auch wieder eine eigene Klasse und damit eine eigene Class-Datei oder du musst das alles als inner Class umbauen).
 
ich les mir mal was über Base64 an, irgendwie werd ich das schon nutzbar machen können.
Ich muss es wohl erst umwandeln bevor ich es nutzen kann, nehme ich mal an.

String newImage TEST;

TEST = "DAS BILD IM BASE64 CODE";

getImage(TEST);


kann das so klappen ?
 

Zurück
Oben