Umwandlung eines Character-Streams in ein Image

Status
Nicht offen für weitere Antworten.

Steff3de

Mitglied
Habe eine Image-Datei(JPEG) als Character-Stream ausgelesen(war so verlangt) und weiss nun nicht wie ich sie ins Image Format bekomme um sie anzuzeigen...
 

thE_29

Top Contributor
Also wenn du die HöhexBreite weißt könntest du ein BufferedImage erzeugen mit WeiterxHöhe und dann den Raster holen und die einzeln Pixeln draufhauen und mit ImageIO.write..... dann das BufferedImage abspeichern!

Vielleicht gehts halt einfach auch, wäre halt nur ne Idee (und obs geht weiß ich auch net ;))
 

Bleiglanz

Gesperrter Benutzer
>>Habe eine Image-Datei(JPEG) als
>>Character-Stream ausgelesen(war so verlangt)

heisst das, du hast einen Reader verwendet? Dann wirds fummelig, weil dein Prog das Zeug dann als Unicode-Zeichenfolge interpretiert hat (im Encoding, das du verwendet hast)

versuch erst mal, mit diesem Encoding ein byte[] daraus zu machen, steht alles in der API :)
 

Steff3de

Mitglied
habe die Datei mit Hilfe des FileReaders in den String "fstr" gelesen:

...

int c;
String fstr = "";
FileReader fr = new FileReader(filename);
//Daten aus Datei einlesen
while((c = fr.read()) != -1){
fstr += (char)c;
}

...

wie bekomme ich das jetzt ins byte format?
 

CelikBlek

Bekanntes Mitglied
so gehts. habe direkt aus meinem letzten projekt kopiert :)
Code:
  public Image arrayToImage(int[] bildArray, int width, int height)
  {
    Image img;
    img = createImage(new MemoryImageSource(width, height, bildArray, 0, width));
    BufferedImage bf = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_RGB);
    bf.createGraphics().drawImage(mg, 0, 0, new Color(10 ,10, 10), null);
    return img;
  }
 

Bleiglanz

Gesperrter Benutzer
java.lang.String

byte[] getBytes(String charsetName)
Encodes this String into a sequence of bytes using the named charset, storing the result into a new byte array.

dir ist schon klar, dass das ganze Vorgehen der komplette Wahnsinn ist; möglicherweise bekommst du byteweise etwas anderes zurück als in der Originaldatei zu finden war
 

CelikBlek

Bekanntes Mitglied
Steff3de hat gesagt.:
und wie bekomme ich meinen String als int-array umgewandelt?

danke schonmal
wieso deinen String? deinen Image wandelst du um.
Code:
  public int[]imageToArray(Image img)
  {
    int width = img.getWidth(null);
    int height = img.getHeight(null);
    int[] array = new int[ width * height];
    grabber = new PixelGrabber(img, 0, 0, img.getWidth(null), img.getHeight(null),
                               array, 0, img.getWidth(null));
    try
    {
      grabber.grabPixels();
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
    return array;
  }
 

Steff3de

Mitglied
mir ist durchaus bewusst das es eigentlich wenig Sinn macht eine Image Datei als Character-Stream zu öffnen, aber es wird in der Aufgabenstellung leider verlangt :-(

da ich die Zeichenfolge in dem String "fstr" habe (siehe oben), müsste ich sie ja erst in ein int-array umwandeln um die Methode "arrayToImage" aufzurufen. Zudem bräuchte ich ja die Größe des Bildes?
 

CelikBlek

Bekanntes Mitglied
dann sollst du auch da bekommen
Code:
  public Image ladeBild(File file)
  {
    boolean geladen = false;
    Image img;
    try
    {
      MediaTracker tracker = new MediaTracker(this);
      img = Toolkit.getDefaultToolkit().getImage(file.getPath());
      tracker.addImage(img, 0);
      tracker.waitForAll();
      geladen = true;
      return img;
    }
    catch (Exception e)
    {
      geladen = false;
      return null;
    }
  }
 

Bleiglanz

Gesperrter Benutzer
was hast du immer mit deinen ints? RTFM


createImage

public Image createImage(byte[] imagedata)

Creates an image which decodes the image stored in the specified byte array.

The data must be in some image format, such as GIF or JPEG, that is supported by this toolkit.

Parameters:
imagedata - an array of bytes, representing image data in a supported image format.
Returns:
an image.
Since:
JDK1.1
 

CelikBlek

Bekanntes Mitglied
Bleiglanz hat gesagt.:
was hast du immer mit deinen ints? RTFM


createImage

public Image createImage(byte[] imagedata)

Creates an image which decodes the image stored in the specified byte array.

The data must be in some image format, such as GIF or JPEG, that is supported by this toolkit.

Parameters:
imagedata - an array of bytes, representing image data in a supported image format.
Returns:
an image.
Since:
JDK1.1
???
 

dotlens

Top Contributor
den String kommt in ein Byte array, der byte array wird zum image:

string --> byte:

parseByte

public static byte parseByte(String s)
throws NumberFormatException

Parses the string argument as a signed decimal byte. The characters in the string must all be decimal digits, except that the first character may be an ASCII minus sign '-' ('\u002D') to indicate a negative value. The resulting byte value is returned, exactly as if the argument and the radix 10 were given as arguments to the parseByte(java.lang.String, int) method.

Parameters:
s - a String containing the byte representation to be parsed
Returns:
the byte value represented by the argument in decimal
Throws:
NumberFormatException - if the the string does not contain a parsable byte.

byte --> image siehe beiglanz....
 

Bleiglanz

Gesperrter Benutzer
ich würde ja eigentlich drauf wetten dass das nicht funktioniert

wenn in dem Bild Byte Strom zufällig ein verrücktes zusammengestztes Unicode Zeichen "erkannt wird", ist dann eigentlich garantiert, dass dieses nie in ein äquivalentes Zeichen uminterpretiert wird??

anders gefragt: Ist bei der Verwendung des gleichen CharacterEncodings garantiert (irgendwo in der API / Spezifikation)

byte[] --]Encoding]---> String----]Encoding]--->byte[]

das identische byte[] Array herauskommt?
 

dotlens

Top Contributor
das kann gut möglich sein. aber er muss das ganze als characterStream einlesen.
Dachte eigentlich dass du diese Lösung vertratst. woher hattest du denn in deiner lösung den byteArray??
 

Bleiglanz

Gesperrter Benutzer
irgendwie blick ich jetzt nicht mehr durch?

die Ausgangssituation war doch, dass Bilddaten (binäre Daten) über einen FileReader in einen String (!ABSURD!) eingelesen werden und dann daraus ein Image gemacht werden soll?

wie soll das gehen, ohne über byte[] zu laufen? gibts irgendwo eine Funktion createImage(String rawDataAsString)? - wohl kaum?
 

CelikBlek

Bekanntes Mitglied
Bleiglanz hat gesagt.:
irgendwie blick ich jetzt nicht mehr durch?

die Ausgangssituation war doch, dass Bilddaten (binäre Daten) über einen FileReader in einen String (!ABSURD!) eingelesen werden und dann daraus ein Image gemacht werden soll?

wie soll das gehen, ohne über byte[] zu laufen? gibts irgendwo eine Funktion createImage(String rawDataAsString)? - wohl kaum?
wer redet denn von String als Parameter??? Schau doch einfach mal weiter oben!!!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
Jose05 Nullpointerexception bei Umwandlung von String zu int Java Basics - Anfänger-Themen 2
J Umwandlung String zu ASCII-Wert und anders Java Basics - Anfänger-Themen 17
M Operatoren Umwandlung div. Operatoren Java Basics - Anfänger-Themen 7
B Date - Umwandlung OffsetDateTime Java Basics - Anfänger-Themen 11
J Probleme bei der Umwandlung einer Farbe von Hex zu RGB Java Basics - Anfänger-Themen 8
J Umwandlung for-Schleife Java Basics - Anfänger-Themen 10
R Fehler bei ASCII Char zu Int Umwandlung Java Basics - Anfänger-Themen 2
M Umwandlung von StringArray in String Java Basics - Anfänger-Themen 2
P Umwandlung in Javacode Java Basics - Anfänger-Themen 10
M Umwandlung String zu int Java Basics - Anfänger-Themen 2
M Umwandlung von Array zu ArrayList Java Basics - Anfänger-Themen 7
S Umwandlung Binär in Dezimal (ohne array etc.) Java Basics - Anfänger-Themen 6
L Interface JOptionPane Umwandlung Java Basics - Anfänger-Themen 10
A Char Bytes Umwandlung und Darstellung Java Basics - Anfänger-Themen 3
K Datentypen Umwandlung einer Textfeldeingabe in einen binären Wert Java Basics - Anfänger-Themen 2
G Umwandlung in verschiedene Zahlensysteme Java Basics - Anfänger-Themen 4
L Umwandlung von String to Int funktioniert nciht Java Basics - Anfänger-Themen 3
V Methoden Umwandlung in generische Methode Java Basics - Anfänger-Themen 8
J Datentypen Umwandlung von Arraylist in ein StringArray Java Basics - Anfänger-Themen 10
J Datentypen Umwandlung von Kommazahl in Punktzahl Locale DE auf US Java Basics - Anfänger-Themen 5
A Umwandlung einer Datei ins int Java Basics - Anfänger-Themen 26
A Umwandlung gcj -> java Java Basics - Anfänger-Themen 4
F Umwandlung vom Dezimalsystem Java Basics - Anfänger-Themen 7
M Umwandlung von Array in Vector und umgekehrt Java Basics - Anfänger-Themen 6
N Umwandlung String - double für mehrdimensionalen array Java Basics - Anfänger-Themen 2
L Umwandlung int <--> byte Java Basics - Anfänger-Themen 2
S Umwandlung von Integer zu String Java Basics - Anfänger-Themen 4
F Datentypen Umwandlung int in String Java Basics - Anfänger-Themen 6
Screen Kurze Frage Umwandlung von Zahlen Java Basics - Anfänger-Themen 2
A Umwandlung int[][][] in String Java Basics - Anfänger-Themen 7
A umwandlung biginteger in int[] Java Basics - Anfänger-Themen 9
A einlesen, schreiben, umwandlung datentyp Java Basics - Anfänger-Themen 10
J Wrapperklasse und ihre Umwandlung Java Basics - Anfänger-Themen 2
Screen Erklärung von der Umwandlung von .class in .jar o. .exe ! Java Basics - Anfänger-Themen 5
Semox Umwandlung von Sonderzeichen in HTML-Datei mit Ausgabe Java Basics - Anfänger-Themen 7
B Umwandlung gemäß Package-Anweisung Java Basics - Anfänger-Themen 5
$ Umwandlung von Schleifen in andere Java Basics - Anfänger-Themen 4
S Problem bei Umwandlung ins Hexadezimalsystem Java Basics - Anfänger-Themen 2
D Umwandlung char -> dezimalzahl und ausgabe als int Java Basics - Anfänger-Themen 5
G Umwandlung Java Basics - Anfänger-Themen 7
A String to Char Umwandlung. Java Basics - Anfänger-Themen 7
R "Umwandlung" SQL-Result in Objekt Java Basics - Anfänger-Themen 5
H Umwandlung von Zahlensystemen Java Basics - Anfänger-Themen 7
E Umwandlung von std, min und sek Java Basics - Anfänger-Themen 2
G Probleme mit Colour und Color, umwandlung möglich? Java Basics - Anfänger-Themen 5
J Umwandlung von Integer in Char Java Basics - Anfänger-Themen 8
Z Problem bei sql-date-Umwandlung Java Basics - Anfänger-Themen 2
T String als Array und Umwandlung in Char Java Basics - Anfänger-Themen 7
R Umwandlung Java Basics - Anfänger-Themen 35
G Frage zu Umwandlung char[] in string[] bzw. Schleifen Java Basics - Anfänger-Themen 9
N x.toString(x); umwandlung von long in String Java Basics - Anfänger-Themen 3
F Umwandlung von String in Integer Java Basics - Anfänger-Themen 3
S Umwandlung von int in String Java Basics - Anfänger-Themen 3
J Warum funktioniert meine Umwandlung nicht? Java Basics - Anfänger-Themen 3
richis-fragen Ungefähre Restdauer eines Kopiervorgangs ermitteln Java Basics - Anfänger-Themen 3
D Erste Schritte Frage eines absoluten Anfängers Java Basics - Anfänger-Themen 3
R Operatoren Klausurenfrage: Auswertungspräzedenz eines komplizierten Ausdrucks Java Basics - Anfänger-Themen 6
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
laxla123 Eigenschaften eines Algorithmus (determiniert vs.. deterministisch) Java Basics - Anfänger-Themen 2
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
J Farbe des Striches eines TitledBorders ändern Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
walid Öffnungszeiten eines Geschäftes Java Basics - Anfänger-Themen 3
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
B Synchronisation eines kleinen Museums Java Basics - Anfänger-Themen 47
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
Sachinbhatt Was ist die Notwendigkeit eines Sammlungsframeworks in Java? Java Basics - Anfänger-Themen 2
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
B Produkt eines double - streams Java Basics - Anfänger-Themen 3
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
S Variablen Letzte Zeile eines Strings entfernen Java Basics - Anfänger-Themen 1
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
J Größe eines Strings in Pixel Java Basics - Anfänger-Themen 18
M Parse-Tree eines statements darstellen Java Basics - Anfänger-Themen 0
H Java verkettete Liste, Wert eines Index zurückgeben Java Basics - Anfänger-Themen 1
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
J Hinzufügen eines Objektes in ein Objekt-Array Java Basics - Anfänger-Themen 62
M Wie kann die Implementation einer Methode den Wert eines Attributs vermindern? Java Basics - Anfänger-Themen 3
A Rekursive Implementation eines Codes Java Basics - Anfänger-Themen 4
H String Repräsentation eines Rechtecks mit Instanz-Methode Java Basics - Anfänger-Themen 8
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
M Wie erreiche ich das Vorwärtsgehen eines Roboters? Java Basics - Anfänger-Themen 2
M Wie erreiche ich es das Vorwärtsgehen eines Roboters? Java Basics - Anfänger-Themen 0
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
A Optimierung eines Programms: Mergen der Dateien Java Basics - Anfänger-Themen 23
melisax Alle Möglichkeiten eines Wortes angeben Java Basics - Anfänger-Themen 3
A Java, verarbeitung eines xml-files Java Basics - Anfänger-Themen 2
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
F Initialisieren eines Web-Mp3 Players in Tabs durch "booleans" erst wenn Tab geöffnet wird ...? Java Basics - Anfänger-Themen 1
P Drei Zahlen eines Würfelspiels auswerten Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben