Hi,
ich hoffe, dass ihr auch C# erlaubt und nicht aus der Reihe tanzt, weil es weder C noch C++ ist, ich aber hoffe, dass ich trotzdem Hilfe finde (will mich nicht extra in einem C#-Forum anmelden wegen einer Frage..).
Und zwar geht es um Folgendes:
Ich will ein Bild einlesen und es in seinen Grauwert transformieren und die Zusammensetzung aller Pixel des gesamten Bildes abspeichern in externes File. Der Inhalt des Files kann nun eingelesen werden und soll wieder in einer pictureBox dargestellt werden.
Mein Vorgehen:
Ich lese das Bild ein und konvertiere es in Grau und stelle es dar. Nach dem Klick auf einen Button "Bild speichern" können die Informationen des Bildes auf die Festplatte abgelegt werden.
Dabei soll in dem File nicht nur die Pixelinformationen des Bildes, sondern auch Höhe und Breite des Bildes enthalten sein. Die Pixelinformationen an sich (also Grauwerte) sollen als Byte abgespeichert werden.
Mit dieser Methode transformiere ich ein Bild in ein byte-Array.
Diesen Code zum Schreiben:
Das Schreiben funktioniert einwandfrei. Nur das Lesen bekomme ich nicht hin.
Ich hatte die Idee das mit File.ReadAllbytes zu machen, aber ich weiß nicht wie ich an den Wert von Height und Width kommen soll und ob pro Pixel ein Byte verwendet wurde oder mehr, oder weniger..
Könnt ihr mir helfen?
ich hoffe, dass ihr auch C# erlaubt und nicht aus der Reihe tanzt, weil es weder C noch C++ ist, ich aber hoffe, dass ich trotzdem Hilfe finde (will mich nicht extra in einem C#-Forum anmelden wegen einer Frage..).
Und zwar geht es um Folgendes:
Ich will ein Bild einlesen und es in seinen Grauwert transformieren und die Zusammensetzung aller Pixel des gesamten Bildes abspeichern in externes File. Der Inhalt des Files kann nun eingelesen werden und soll wieder in einer pictureBox dargestellt werden.
Mein Vorgehen:
Ich lese das Bild ein und konvertiere es in Grau und stelle es dar. Nach dem Klick auf einen Button "Bild speichern" können die Informationen des Bildes auf die Festplatte abgelegt werden.
Dabei soll in dem File nicht nur die Pixelinformationen des Bildes, sondern auch Höhe und Breite des Bildes enthalten sein. Die Pixelinformationen an sich (also Grauwerte) sollen als Byte abgespeichert werden.
Mit dieser Methode transformiere ich ein Bild in ein byte-Array.
Code:
public byte[] BmpToArray(Bitmap bmp)
{
ImageConverter imgCon = new ImageConverter();
return (byte[])imgCon.ConvertTo(bmp, typeof(byte[]));
}
Diesen Code zum Schreiben:
Code:
bArr = BmpToArray(grayImage);
using (BinaryWriter writer = new BinaryWriter(File.Open(fileName, FileMode.Create)))
{
writer.Write("Height:" + height);
writer.Write("Width: " + width);
writer.Close();
File.WriteAllBytes(fileName, bArr);
}
Das Schreiben funktioniert einwandfrei. Nur das Lesen bekomme ich nicht hin.
Ich hatte die Idee das mit File.ReadAllbytes zu machen, aber ich weiß nicht wie ich an den Wert von Height und Width kommen soll und ob pro Pixel ein Byte verwendet wurde oder mehr, oder weniger..
Könnt ihr mir helfen?