Konvertieren Sie ein Bild in ein Byte-Array in C#

Saad Aslam 12 Oktober 2023
  1. Übersicht über Byte-Array
  2. Verwenden Sie Memory Stream, um ein Bild in ein Byte-Array in C# zu konvertieren
  3. Verwenden Sie ImageConverter, um ein Bild in ein Byte-Array in C# zu konvertieren
  4. Konvertieren Sie ein Byte-Array in ein Bild in C#
Konvertieren Sie ein Bild in ein Byte-Array in C#

Dieses Tutorial zeigt uns, wie man ein Bild mit den Klassen Memory Stream und Image Converter in ein Byte-Array umwandelt. Darüber hinaus werden wir den Prozess der Konvertierung eines C#-Arrays von Bytes in ein Bild besser verstehen.

Übersicht über Byte-Array

Eine Sammlung von Binärdaten wird häufig in einem Format gespeichert, das als Byte-Array bekannt ist, bei dem es sich um ein Array von Bytes handelt. Beispielsweise werden die Informationen zu jedem Pixel eines Bildes innerhalb des Byte-Arrays gespeichert, aus dem das Bild besteht.

Im Byte-Array können wir die binäre Darstellung des Inhalts einer beliebigen Datei speichern. Auf die gleiche Weise initialisieren wir das reguläre Array mit den Bytes; Wir können das Byte-Array auch mit den Bytes initialisieren.

Verwenden Sie Memory Stream, um ein Bild in ein Byte-Array in C# zu konvertieren

Das .NET Framework bietet Unterstützung für eine Vielzahl von Bildformaten. Das Picture-Objekt verfügt über eine Speichermethode, die es Entwicklern ermöglicht, ein Bild in einer Datei in einem dieser Formate zu speichern.

Code:

public byte[] imgToByteArray(Image img) {
  using (MemoryStream mStream = new MemoryStream()) {
    img.Save(mStream, img.RawFormat);
    return mStream.ToArray();
  }
}

Im obigen Beispiel schreiben wir eine Funktion namens imgToByteArray, die eine img-Eingabe vom Typ Image als Argument akzeptiert. Innerhalb der using-Zeile dieser Methode erstellen wir eine Instanz der MemoryStream()-Klasse.

Dann wenden wir während dieser Instanz die Funktion Save() auf das Objekt MemoryStream an, während ein Bildformat angegeben wird. Nun, da das Element bereits im Speicher gespeichert ist, kann die auf dem Objekt MemoryStream verfügbare ToArray()-Methode es schnell und effizient in ein Byte-Array umwandeln.

Verwenden Sie ImageConverter, um ein Bild in ein Byte-Array in C# zu konvertieren

Code:

public static byte[] imgToByteConverter(Image inImg) {
  ImageConverter imgCon = new ImageConverter();
  return (byte[])imgCon.ConvertTo(inImg, typeof(byte[]));
}

Wir haben eine Funktion namens imgToByteConverter() erstellt. Es nimmt eine Eingabe namens inImg und hat den Typ Image als Parameter.

Innerhalb dieser Methode erstellen wir eine Instanz der Klasse ImageConverter(). Nach der Konvertierung des gesendeten Bildes mit der Methode .ConvertTo() gibt diese Funktion die konvertierten Bytes in ihr ursprüngliches Format zurück.

Konvertieren Sie ein Byte-Array in ein Bild in C#

Das Konvertieren eines Bildes in ein Byte-Array ist uns vertraut. Nachdem das Byte-Array geladen wurde, sehen wir uns die Funktion an, die es in ein Bild umwandelt, damit wir das Bild in unserem Code weiter verwenden können.

Code:

public Image byteArrayToImage(byte[] byteArrayIn) {
  using (MemoryStream mStream = new MemoryStream(byteArrayIn)) {
    return Image.FromStream(mStream);
  }
}

Eine Funktion namens byteArrayToImage() wird erstellt. Es nimmt eine Eingabe namens byteArrayIn und hat den Typ byte[] als Parameter.

Diese Methode enthält eine using-Anweisung, die eine Instanz der MemoryStream-Klasse initialisiert, indem sie ihr die in der byteArrayIn-Variablen gespeicherten Bytes zur Verfügung stellt. Die Bytes werden dann mit Hilfe der Methode .FromStream() in ein Bild umgewandelt, das ein als mStream bezeichnetes Argument aufruft und zurückgibt.

Autor: Saad Aslam
Saad Aslam avatar Saad Aslam avatar

I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.

LinkedIn

Verwandter Artikel - Csharp Array