C# で画像を Base64 文字列に変換する

Saad Aslam 2023年10月12日
C# で画像を Base64 文字列に変換する

この記事では、C# を使用して画像を base64 文字列に変換する方法について説明します。

base64 でのエンコードは、バイナリ データをテキスト表現に変換する必要がある場合によく使用される手法です。 MIME を使用した電子メールの送信や XML での複雑なデータの保存など、多数のアプリケーションで base64 エンコーディング標準が頻繁に使用されます。

C# で画像を Base64 文字列に変換する

まず、ライブラリをインポートして、プログラム内のクラスと関数にアクセスします。

using System;

ImagetoBase64 クラスを作成し、このクラス内に Main() メソッドを作成します。

class ImagetoBase64 {
  public static void Main() {}
}

Main() 関数内で、ReadAllBytes() 関数を使用して、選択した画像をバイト配列に変換する byte[] として示されるバイト配列型の変数 imageArray を作成します。

byte[] imageArray = System.IO.File.ReadAllBytes("E://image.jpg");

base64Image という文字列型の新しい変数を作成します。 この変数は、Convert クラスの関数 ToBase64String(). を使用して、画像のバイトを base64 に変換します。

この関数は、8 ビット符号なし整数の配列の一部を取り、base-64 数字を使用してエンコードされた文字列表現を生成します。

パラメータを使用すると、サブセットを入力配列内のオフセットおよび変換する配列項目の数として定義できます。 また、返される結果に改行を含めるかどうかを決定することもできます。

string base64Image = Convert.ToBase64String(imageArray);

最後に、base64 テキストに変換された画像を表示するだけです。

Console.WriteLine("Base 64 string\n\n" + base64Image);

完全なソース コード:

using System;

class ImagetoBase64 {
  public static void Main() {
    byte[] imageArray = System.IO.File.ReadAllBytes("E://image.jpg");
    string base64Image = Convert.ToBase64String(imageArray);

    Console.WriteLine("Base 64 string\n\n" + base64Image);
  }
}

base64 はかなり長いので、このように続くことを明確にするために ... を挿入します。

出力:

/9j/4AAQSkZJRgABAQEASABIAAD/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD......
著者: 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

関連記事 - Csharp Image