/// <summary> /// 画像の保存 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ButtonSave_Click(object sender, EventArgs e) { Image img = CreateImage(); // SaveFileDialogクラスのインスタンスを作成 SaveFileDialog sfd = new SaveFileDialog(); // はじめのファイル名を指定する // はじめに「ファイル名」で表示される文字列を指定する sfd.FileName = Settings.Instance.SaveFileName + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".png"; // はじめに表示されるフォルダを指定する // 指定しない(空の文字列)の時は、現在のディレクトリが表示される // sfd.InitialDirectory = "C:\" // [ファイルの種類]に表示される選択肢を指定する sfd.Filter = "(*.bmp)|*.bmp|(*.jpeg)|*.jpeg|(*.png)|*.png"; // [ファイルの種類]ではじめに選択されるものを指定する // 2番目の「すべてのファイル」が選択されているようにする sfd.FilterIndex = 3; // タイトルを設定する sfd.Title = "保存先のファイルを選択してください"; // ダイアログボックスを閉じる前に現在のディレクトリを復元するようにする sfd.RestoreDirectory = true; // 既に存在するファイル名を指定したとき警告する // デフォルトでTrueなので指定する必要はない sfd.OverwritePrompt = true; // 存在しないパスが指定されたとき警告を表示する // デフォルトでTrueなので指定する必要はない sfd.CheckPathExists = true; // ダイアログを表示する if (sfd.ShowDialog() == DialogResult.OK) { // OKボタンがクリックされたとき、選択されたファイル名を表示する Console.WriteLine(sfd.FileName); if (sfd.FileName.Substring(sfd.FileName.Length - 4, 4) == ".bmp") { ClsImageSave.saveImage(0, sfd.FileName, img); } else if (sfd.FileName.Substring(sfd.FileName.Length - 5, 5) == ".jpeg") { ClsImageSave.saveImage(1, sfd.FileName, img); } else if (sfd.FileName.Substring(sfd.FileName.Length - 4, 4) == ".png") { ClsImageSave.saveImage(2, sfd.FileName, img); } } }
// キャプチャ完了後処理 public static void ImageCaptured(Bitmap bmp) { // クリップボードに貼り付け Clipboard.SetImage(bmp); // デスクトップに保存 if (Settings.Instance.SaveDesktopMode == true) { ClsImageSave.ImageDesktopSaveFile(bmp); } // 編集 if (Settings.Instance.EditCapture == true) { // プレビューフォームをプライマリスクリーンの中央に表示 FormPaint fPaint = new FormPaint(); fPaint.StartPosition = FormStartPosition.Manual; fPaint.Top = (int)(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height / (double)2 - fPaint.Height / (double)2); fPaint.Left = (int)(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width / (double)2 - fPaint.Width / (double)2); // 画像をディープコピー fPaint.PictureBoxCapture.Image = (Bitmap)bmp.Clone(); // プレビューフォームを表示 fPaint.Show(); } // 印刷 if (Settings.Instance.PrintCaptureMode == true) { // プレビューフォームをプライマリスクリーンの中央に表示 FormPrintPreview fPrintPreview = new FormPrintPreview(); fPrintPreview.StartPosition = FormStartPosition.Manual; fPrintPreview.Top = (int)(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height / (double)2 - fPrintPreview.Height / (double)2); fPrintPreview.Left = (int)(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width / (double)2 - fPrintPreview.Width / (double)2); // 画像をディープコピー fPrintPreview.memoryImage = (Bitmap)bmp.Clone(); // プレビューフォームを表示 fPrintPreview.Show(); } }