MENU

【C#】画像をファイルに保存する方法

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");
        }
    }
}

このコードでは、以下の手順で画像を保存しています:

  1. Bitmapオブジェクトを作成して、そこに描画を行います。
  2. Bitmap.Saveメソッドを使用して、画像をファイルとして保存します。
  3. 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");
            }
        }
    }
}

このコードでは:

  1. Image.FromFileメソッドを使って既存の画像ファイルを読み込みます。
  2. 読み込んだ画像と同じサイズの新しいBitmapオブジェクトを作成し、そこに元の画像を描画します。
  3. RotateFlipメソッドを使用して画像を水平方向に反転させています。
  4. 編集した画像を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#でのプログラミングで画像関連の多くのタスクをこなすことができるでしょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次