C#でプログラミングをしていると、画像を扱う機会は意外と多いものです。例えば、ユーザーがアップロードした画像を処理したり、プログラムで生成したグラフや図表を画像として保存したりする場面があるでしょう。そんな時に必要になるのが、画像をファイルとして保存する技術です。この記事では、C#で画像をファイルに保存する方法を、初心者の方にも分かりやすく解説します。
目次
画像をファイルに保存する基本的な方法
C#で画像をファイルに保存するには、主にSystem.Drawing
名前空間のBitmap
クラスとImage
クラスを使用します。以下に、基本的な保存方法を示すコード例を見てみましょう。
using System;
using System.Drawing;
using System.Drawing.Imaging;
class ImageSaveExample
{
static void Main()
{
// 新しいBitmapオブジェクトを作成(例として300x200ピクセルの画像)
using (Bitmap bmp = new Bitmap(300, 200))
{
// 画像に何か描画する(例として青い背景に赤い円を描く)
using (Graphics g = Graphics.FromImage(bmp))
{
g.Clear(Color.Blue);
using (Brush redBrush = new SolidBrush(Color.Red))
{
g.FillEllipse(redBrush, 50, 50, 100, 100);
}
}
// 画像をファイルとして保存
bmp.Save("example.png", ImageFormat.Png);
Console.WriteLine("画像が保存されました: example.png");
// 別の形式で保存
bmp.Save("example.jpg", ImageFormat.Jpeg);
Console.WriteLine("画像が保存されました: example.jpg");
}
}
}
このコードでは、以下の手順で画像を保存しています:
Bitmap
オブジェクトを作成して、そこに描画を行います。Bitmap.Save
メソッドを使用して、画像をファイルとして保存します。ImageFormat
列挙型を使用して、保存する画像の形式を指定します。
既存の画像ファイルを読み込んで保存する
既存の画像ファイルを読み込んで、編集後に別のファイルとして保存することもできます。以下は、その例です:
using System;
using System.Drawing;
using System.Drawing.Imaging;
class ImageEditAndSaveExample
{
static void Main()
{
// 既存の画像ファイルを読み込む
using (Image originalImage = Image.FromFile("input.jpg"))
{
// 新しいBitmapオブジェクトを作成(元の画像と同じサイズ)
using (Bitmap editedImage = new Bitmap(originalImage.Width, originalImage.Height))
{
// 画像に何か編集を加える(例として画像を反転させる)
using (Graphics g = Graphics.FromImage(editedImage))
{
g.DrawImage(originalImage, new Rectangle(0, 0, editedImage.Width, editedImage.Height),
0, 0, originalImage.Width, originalImage.Height, GraphicsUnit.Pixel,
new ImageAttributes());
}
editedImage.RotateFlip(RotateFlipType.RotateNoneFlipX);
// 編集した画像を新しいファイルとして保存
editedImage.Save("output.png", ImageFormat.Png);
Console.WriteLine("編集された画像が保存されました: output.png");
}
}
}
}
このコードでは:
Image.FromFile
メソッドを使って既存の画像ファイルを読み込みます。- 読み込んだ画像と同じサイズの新しい
Bitmap
オブジェクトを作成し、そこに元の画像を描画します。 RotateFlip
メソッドを使用して画像を水平方向に反転させています。- 編集した画像を
Save
メソッドで新しいファイルとして保存します。
画像の保存形式について
C#では、様々な形式で画像を保存することができます。主な形式とその特徴は以下の通りです:
- PNG (.png): 高品質で、透過をサポートしています。写真以外の画像に適しています。
- JPEG (.jpg): 写真に適しており、ファイルサイズを小さくできます。
- GIF (.gif): 色数が少ない画像や小さなアニメーションに適しています。
- BMP (.bmp): 無圧縮の形式で、高品質ですがファイルサイズが大きくなります。
保存形式は、ImageFormat
列挙型を使用して指定します。例えば:
bmp.Save("example.png", ImageFormat.Png); // PNG形式で保存
bmp.Save("example.jpg", ImageFormat.Jpeg); // JPEG形式で保存
bmp.Save("example.gif", ImageFormat.Gif); // GIF形式で保存
bmp.Save("example.bmp", ImageFormat.Bmp); // BMP形式で保存
まとめ
C#で画像をファイルに保存する方法は、Bitmap
クラスやImage
クラスのSave
メソッドを使用することで簡単に実現できます。新しく生成した画像の保存はもちろん、既存の画像ファイルを読み込んで編集し、別のファイルとして保存することも可能です。
画像の保存形式は用途に応じて適切なものを選択しましょう。写真のような複雑な画像はJPEG、透過が必要な画像やグラフィックはPNGが適していることが多いです。
これらの基本を押さえておけば、C#でのプログラミングで画像関連の多くのタスクをこなすことができるでしょう。
コメント