名前空間 System
自己紹介
私はConvert、.NETの万能で狡猾な変換マスター。データ型の世界を自在に操り、真実と偽りの狭間で踊る悪戯好きの神だ。
Convertクラス
今日、君たちに披露するのは、「Convert」クラスを使ってPNG画像をbase64形式にエンコードする魔法のような技だ。この技を使いこなせば、データの扱い方に対する視点が広がるだろう。それじゃあ始めるぞ。
基本機能
さて、base64というのはデータを文字列として扱えるように変換する方法だ。PNG画像などのバイナリデータをbase64に変換すると、テキストとして通信や保存に便利になる。ただし、この技には注意が必要だ。例えば、base64エンコードにはデータサイズが33%増えるというデメリットがある。
まずは、PNG画像をbase64形式にエンコードする簡単なコード例を見てみよう。
// PNG画像をbase64文字列に変換する例
string filePath = "/path/sample.png";
byte[] imageBytes = File.ReadAllBytes(filePath); // PNGファイルをバイト配列に読み込む
string base64String = Convert.ToBase64String(imageBytes); // バイト配列をbase64文字列に変換
Console.WriteLine(base64String); // 結果を出力
どうだい?たった数行で、PNGファイルをbase64形式の文字列に変換できるだろう。
base64化した画像をファイルに書き出す方法と読み込む方法
さて、次はbase64文字列を元のPNGファイルに戻す技と、変換結果をUI上で表示する方法だ。ここでは、ボタン2つとPictureBox1つをフォームに配置していると仮定する。
最初のボタンで画像をbase64形式に変換し、もう一つのボタンでその文字列を元に画像ファイルを生成し、PictureBoxに表示する。
using System;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// ボタン1: PNGをbase64に変換
private void button1_Click(object sender, EventArgs e)
{
string filePath = "sample.png";
byte[] imageBytes = File.ReadAllBytes(filePath); // PNGファイルをバイト配列に読み込む
string base64String = Convert.ToBase64String(imageBytes); // バイト配列をbase64文字列に変換
File.WriteAllText("encode.txt", base64String); // base64文字列をテキストファイルに保存
MessageBox.Show("画像をbase64形式に変換して保存しました!");
}
// ボタン2: base64をPNGに変換して表示
private void button2_Click(object sender, EventArgs e)
{
string base64String = File.ReadAllText("encode.txt"); // base64文字列を読み込む
// Base64文字列をバイト配列に変換
byte[] imageBytes = Convert.FromBase64String(base64String);
// バイト配列をImageオブジェクトに変換
using (MemoryStream ms = new MemoryStream(imageBytes))
{
pictureBox1.Image =System.Drawing.Image.FromStream(ms);
}
}
}
これで、画像データを安全に保存・復元しつつ、UIで結果を確認することができる。君もこの技を応用して、さらに便利なプログラムを作ってみてくれ。
0 件のコメント:
コメントを投稿