Konvertieren Sie ein Bild in ein Byte-Array in C#
- Übersicht über Byte-Array
-
Verwenden Sie
Memory Stream
, um ein Bild in ein Byte-Array inC#
zu konvertieren -
Verwenden Sie
ImageConverter
, um ein Bild in ein Byte-Array inC#
zu konvertieren -
Konvertieren Sie ein Byte-Array in ein Bild 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.
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