.
Anmeldung | Registrieren | Hilfe
in Suchen

byte Array

Letzter Beitrag 03. Jan 2012 13:56 von Massimoto. 4 Antworten.
Seite 1 von 1 (5 Treffer)
Beiträge sortieren: Zurück Weiter
  • 22. Nov 2011 17:03

    • Massimoto
    • Top 500 Mitwirkender
    • Registriert am 22. Nov 2011
    • Beiträge 3
    • Punkte 45

    byte Array

    Hallo!
    Ich arbeite momentan an einem Projekt welches mir Bilder verschiedener Formate anzeigen können soll.
    Die Bildinformation wird in einer speziellen Datei in einem Vektor gespeichert. Diese muss ich zuerst laden, in einem byte-Array speichern und dann mit verschiedenen Interpolationen darstellen.
    Bevor ich mit den Interpolationsroutinen anfange möchte ich sicher stellen dass ich mein byte-Array als Bild dargestellt bekomme. Und da hapert es auch schon.

    Ich lese mir meine Daten mit einem FileStream ein und speicher sie in einem byte-Array. Soweit funktioniert das auch.
    Wenn ich nun mit verschiedenen Ansätzen versuche aus dem byte-Array ein Bild zu generieren bekomme ich leider nur Fehlermeldungen.

           {
                ...
                int numberOfBytes = 256 / 2 * 256;
                byte[] rawData = new byte[numberOfBytes];
                FileStream fs = File.OpenRead(vectorPath);
                fs.Read(rawData, 0, numberOfBytes);
                fs.Close();
    
                BildBox.Image = ByteArray2Image(rawData);
            }
    
            public Image ByteArray2Image(byte[] ByAr)
            {
                System.IO.MemoryStream MS = new System.IO.MemoryStream(ByAr);
                return Image.FromStream(MS);
            }


    Sollte ich es schaffen das Bild anzuzeigen wäre der nächste Schritt es mit einem 2D-byte Array zu machen, weil ich glaube dass die Interpolation einfacher zu machen ist wenn ich mit einem 2D Array arbeite.
    Kann mir da jemand weiterhelfen?
    • IP-Adresse ist Registriert
  • 23. Nov 2011 15:15 Antwort zu

    • O.G.
    • Top 25 Mitwirkender
      Männlich
    • Registriert am 01. Jul 2010
    • Schwabach
    • Beiträge 121
    • Punkte 1.840

    byte Array

    Hi Massimoto,

    Also OHNE byte Arry würde es so funzen, und ich kann diese Formate öffen:

    *.bmp, *.png, *.jpg, *.jpeg, *.gif, *.tif, *.jfif, *.dib  mehr hab ich bis jetzt noch nicht getestet.

            /// <summary>
            /// *.bmp, *.png, *.jpg, *.jpeg, *.gif, *.tif, *.jfif, *.dib
            /// </summary>
            private void Load_File()
            {
                FileStream FileStream_Test_File = File.OpenRead("D:\\Test.dib");
                long long_File_Length = FileStream_Test_File.Length;
                this.label1.Text = (long_File_Length / 1024).ToString();  // Length Check in ->  Kb
                this.pictureBox1.Image = Image.FromStream(FileStream_Test_File, true);
                FileStream_Test_File.Close();
            }


    Ich würde es ohne byte Arry machen.
    Wenn es mein Code nicht  funzt kannst du mal eine Bild file von dir mir zukommen lassen dammit ich es testen kann?

    Edit: Oder erstellst du ein eigenes format?

    Edit2:

    Warum machst du es so?
    </strong> int numberOfBytes = 256 / 2 * 256;
     byte[] rawData = new byte[numberOfBytes];
    <strong>


    Ich würde es so machen:

                FileStream FileStream_Test_File = File.OpenRead(String_File_Pfad);
                long long_File_Length = FileStream_Test_File.Length;
                byte[] byte_Arry_Daten = new byte[long_File_Length];


    Oder ist deine File Immer 32kb gross ?  (256 / 2 * 256) / 1024

    MFG Oliver G



    • IP-Adresse ist Registriert
  • 23. Nov 2011 16:10 Antwort zu

    • Massimoto
    • Top 500 Mitwirkender
    • Registriert am 22. Nov 2011
    • Beiträge 3
    • Punkte 45

    byte Array

    Hallo!
    Danke schonmal für deine Hilfe.
    Das Dateiformat bekomme ich vorgegeben, ist was eigenes. Ich muss den Vektor erst zerlegen, weil das mehrere tausend einzelbilder hintereinander sind. Deswegen erst einmal Vektor zerschneiden und in einzelnen byte Arrays speicher. Werden den Code die Tage testen, bin jetzt leider 5 Tage nicht da. Ich melde mich dann ob es funktioniert hat ;)

    edit: und die Bilder sind in dem Format immer 256x256. Die Größe ist festgesetzt, im Code nur zum besseren Verständniss auf 256 geändert.
    und ich muss die größe des arrays ändern können weil ich auch andere bildgrößen habe später (zB 512x512 der 256x126)
    • IP-Adresse ist Registriert
  • 24. Nov 2011 1:34 Antwort zu

    • O.G.
    • Top 25 Mitwirkender
      Männlich
    • Registriert am 01. Jul 2010
    • Schwabach
    • Beiträge 121
    • Punkte 1.840

    byte Array

    Antworten
    Also mit den Arry Funzt es so:

         private void File_Load(string Str_Datei_Pfad, int int_Set_Arry_BildGroesse)
            {
                byte[] byte_Arry_Daten = new byte[int_Set_Arry_BildGroesse];
                FileStream FileStream_Test_File = File.OpenRead(Str_Datei_Pfad);
                FileStream_Test_File.Read(byte_Arry_Daten, 0, int_Set_Arry_BildGroesse);
                MemoryStream MemoryStream_Daten = new MemoryStream(byte_Arry_Daten);
                try
                { pictureBox1.Image = Image.FromStream(MemoryStream_Daten); }
                catch (Exception Exception_Message)
                { MessageBox.Show(Exception_Message.ToString()); }
                FileStream_Test_File.Close();
                MemoryStream_Daten.Dispose();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                File_Load("D:\\Test.png", 320000);
            }


    MFG Oliver G
    • IP-Adresse ist Registriert
  • 03. Jan 2012 13:56 Antwort zu

    • Massimoto
    • Top 500 Mitwirkender
    • Registriert am 22. Nov 2011
    • Beiträge 3
    • Punkte 45

    byte Array

    Danke. Das hat soweit funktioniert.
    edit: Problem gelöst.
    • IP-Adresse ist Registriert
Seite 1 von 1 (5 Treffer)

WPF Forum | ASP.NET Forum | ASP.NET MVC Forum | Silverlight Forum | Windows Phone 7 Forum | SharePoint Forum | Dotnet Jobs | Dotnet Termine | Developer Blogs | Dotnet News

Das Team | Regeln | Impressum