HOWTO · Csharp
C# でイメージをバイト配列に変換する
この記事では、C# で画像をバイト配列に変換する方法を学習します。
このページの内容
このチュートリアルでは、Memory Stream クラスと Image Converter クラスを使用して画像をバイト配列に変換する方法を説明します。 さらに、バイトの C# 配列をイメージに変換するプロセスをよりよく理解できるようになります。
バイト配列の概要
バイナリ データのコレクションは、多くの場合、バイトの配列であるバイト配列と呼ばれる形式で格納されます。 たとえば、画像の各ピクセルに関する情報は、画像を構成するバイト配列内に格納されます。
バイト配列では、任意のファイルの内容のバイナリ表現を保存できます。 同様に、通常の配列をバイトで初期化します。 バイト配列をバイトで初期化することもできます。
C# で Memory Stream を使用してイメージをバイト配列に変換する
.NET Framework は、さまざまな画像形式をサポートしています。 Picture オブジェクトには、開発者がこれらの形式のいずれかで画像をファイルに保存できる save メソッドがあります。
コード:
public byte[] imgToByteArray(Image img) {
using (MemoryStream mStream = new MemoryStream()) {
img.Save(mStream, img.RawFormat);
return mStream.ToArray();
}
}
上記の例では、Image 型の img 入力を引数として受け入れる imgToByteArray という関数を記述します。 このメソッドの using 行内で、MemoryStream() クラスのインスタンスを作成します。
次に、画像フォーマットが指定されている間、このインスタンス中に MemoryStream オブジェクトに Save() 関数を適用します。 アイテムが既にメモリに保存されているので、MemoryStream オブジェクトで利用可能な ToArray() メソッドは、アイテムをすばやく効率的にバイト配列に変換できます。
C# で ImageConverter を使用して画像をバイト配列に変換する
コード:
public static byte[] imgToByteConverter(Image inImg) {
ImageConverter imgCon = new ImageConverter();
return (byte[])imgCon.ConvertTo(inImg, typeof(byte[]));
}
imgToByteConverter() という関数を作成しました。 inImg という名前の入力を取り、そのパラメーターとして型 Image を持ちます。
このメソッド内で、ImageConverter() クラスのインスタンスを作成します。 .ConvertTo() メソッドを使用して送信された画像を変換した後、この関数は元の形式に変換されたバイトを返します。
C#でバイト配列を画像に変換する
画像をバイト配列に変換することは、私たちがよく知っていることです。 バイト配列がロードされたので、それを画像に変換する関数を見て、コードで画像を利用できるようにします。
コード:
public Image byteArrayToImage(byte[] byteArrayIn) {
using (MemoryStream mStream = new MemoryStream(byteArrayIn)) {
return Image.FromStream(mStream);
}
}
byteArrayToImage() という関数が作成されます。 これは byteArrayIn という名前の入力を取り、そのパラメーターとして型 byte[] を持ちます。
このメソッドには、byteArrayIn 変数に格納されたバイトを提供することによって、MemoryStream クラスのインスタンスを初期化する using ステートメントが含まれています。 次に、バイトは、.FromStream() メソッドの助けを借りて画像に変換されます。このメソッドは、mStream と呼ばれる引数を呼び出し、それを返します。