[Tips][PictureBox] 画像を保存する

PictureBoxに表示されている画像はImageプロパティSaveメソッドで保存することが可能です。

Saveメソッドの第1引数には保存ファイルパスを、第2引数には保存形式を指定します。

保存形式にはImageFormatクラスの値を指定します。

ImageFormatクラス
メンバ名 説明
BMP ビットマップ(BMP)形式
Emf 拡張メタファイル(EMF)形式
Exif Exif形式
Gif GIF形式
GUID このImageFormatオブジェクトを表すGuid構造体
Icon Windowsアイコンイメージ形式
Jpeg JPEG形式
MemoryBmp メモリ上のビットマップ形式
Png PNG形式
Tiff TIFF形式
Wmf Windowsメタファイル(WMF)形式

下記は、PictureBoxに表示されている画像を保存する例です。

[画像を開く]ボタンでPictureBoxに表示する画像を選択し、[画像を保存]ボタンでPictureBoxに表示されている画像を保存します。

画像の保存では、拡張子で画像の保存形式を決定しています。

サンプルの画面デザインは下記のようにしました。

VBの例

' [画像を開く]ボタンクリック時の処理
Private Sub btnOpenImage_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpenImage.Click
    'フィルターの設定
    OpenFileDialog1.Filter = "画像ファイル|*.gif;*.jpg;*.png|すべてのファイル|*.*"

    'ファイル選択ダイアログを表示
    OpenFileDialog1.ShowDialog()
End Sub

' [開く]ボタンクリック時の処理
Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
    'イメージの表示方法を設定(サイズ比率を維持したまま拡大/縮小)
    PictureBox1.SizeMode = PictureBoxSizeMode.Zoom

    'PictureBoxにイメージを読み込む
    PictureBox1.Image = Image.FromFile(OpenFileDialog1.FileName)
End Sub

' [画像を保存]ボタンクリック時の処理
Private Sub btnSaveImage_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSaveImage.Click
    'フィルターの設定
    SaveFileDialog1.Filter = "GIF形式|*.gif|JPEG形式|*.jpeg|PNG形式|*.png"

    'ファイル保存ダイアログを表示
    SaveFileDialog1.ShowDialog()
End Sub

' [保存]ボタンクリック時の処理
Private Sub SaveFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk
    Dim extension As String = IO.Path.GetExtension(SaveFileDialog1.FileName)

    Select Case extension.ToUpper
        Case ".GIF"
            '★★★PictureBoxのイメージをGIF形式で保存する★★★
            PictureBox1.Image.Save(SaveFileDialog1.FileName, Imaging.ImageFormat.Gif)
        Case ".JPEG"
            '★★★PictureBoxのイメージをJPEG形式で保存する★★★
            PictureBox1.Image.Save(SaveFileDialog1.FileName, Imaging.ImageFormat.Jpeg)
        Case ".PNG"
            '★★★PictureBoxのイメージをGIF形式で保存する★★★
            PictureBox1.Image.Save(SaveFileDialog1.FileName, Imaging.ImageFormat.Png)
    End Select
End Sub

C#の例

// [画像を開く]ボタンクリック時の処理
private void btnOpenImage_Click(object sender, EventArgs e)
{
    // フィルターの設定
    openFileDialog1.Filter = "画像ファイル|*.gif;*.jpg;*.png|すべてのファイル|*.*";

    // ファイル選択ダイアログを表示
    openFileDialog1.ShowDialog();
}

// [開く]ボタンクリック時の処理
private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
{
    // イメージの表示方法を設定(サイズ比率を維持したまま拡大/縮小)
    pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;

    // PictureBoxにイメージを読み込む
    pictureBox1.Image = Image.FromFile(openFileDialog1.FileName);
}

/// [画像を保存]ボタンクリック時の処理
private void btnSaveImage_Click(object sender, EventArgs e)
{
    // フィルターの設定
    saveFileDialog1.Filter = "GIF形式|*.gif|JPEG形式|*.jpeg|PNG形式|*.png";

    // ファイル保存ダイアログを表示
    saveFileDialog1.ShowDialog();
}

// [保存]ボタンクリック時の処理
private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
{
    string extension = System.IO.Path.GetExtension(saveFileDialog1.FileName);

    switch (extension.ToUpper())
    {
        case ".GIF":
            // ★★★PictureBoxのイメージをGIF形式で保存する★★★
            pictureBox1.Image.Save(saveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Gif);
            break;
        case ".JPEG":
            // ★★★PictureBoxのイメージをJPEG形式で保存する★★★
            pictureBox1.Image.Save(saveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
            break;
        case ".PNG":
            // ★★★PictureBoxのイメージをGIF形式で保存する★★★
            pictureBox1.Image.Save(saveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Png);
            break;
    }
}

実行例は下記の通りです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください