VC++2005でPictureBoxにはりつけられた画像のみを名前をつけて保存するにはどうすればいいですか?

解決


SSNS  2009-08-04 01:25:54  No: 70755  IP: [192.*.*.*]

VC++2005で、出力された(PictureBoxにはりつけられた)画像のみをBitmap形式で「名前をつけて保存」するプログラムを作っています。
しかし、知識と理解不足で、いろんなサイトを調べてやったのですがうまくいきません。

とりあえず、Bitmap形式で「名前をつけて保存」ができるようにまでにはなったのですが、保存されたBitmap形式のファイルが開けません。
おそらく、画像のデータを取得するコードがわからなかったので、適当にWriteLineというものを使ってプログラムを作ったためだと思うのですが・・。
もしかしたらPictureBoxにはりつけられた画像を保存するのだというプログラムすら怪しいです・・。

わかりにくい文章ですみません。
どなたか教えていただけたらうれしいです。
どうかよろしくお願いします。

編集 削除
subaru  2009-08-04 09:53:14  No: 70756  IP: [192.*.*.*]

C++/CLIですね。

PictureBoxのImageプロパティからイメージを取得して
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.picturebox.image(VS.80).aspx
Save メソッドで保存します。
http://msdn.microsoft.com/ja-jp/library/ktx83wah(VS.80).aspx

編集 削除
SSNS  2009-08-04 22:31:32  No: 70757  IP: [192.*.*.*]

返信ありがとうございます。
必死に考えて、

private: System::Void menuSave_Click(System::Object^  sender, System::EventArgs^  e) {
       
       SaveFileDialog^sfdlg=gcnew SaveFileDialog();
       sfdlg->Filter="BMPファイル(*.bmp)|*.bmp";
       if(sfdlg->ShowDialog()!=System::Windows::Forms::DialogResult::OK)return;
       System::IO::StreamWriter^swriter=gcnew System::IO::StreamWriter(sfdlg->FileName);
     } 
                 [BindableAttribute(true)]
public:
  property Image^ Image
  {
    Image^ get ();
    void set (Image^ value);
  }
public:
  void Save(
    String^ filename
    );

としたのですが
error C2059: 構文エラー : 'public'
error C2334: ':' の前に予期しないトークンがありました。関数の本体は無視されます。
というエラーが出てきました。
どうすればよいのでしょうか?

ない頭絞って考えたのですが、どうもわからないので、どうかお手数おかけしますが、再び教えていただけないでしょうか?

編集 削除
subaru  2009-08-04 23:30:52  No: 70758  IP: [192.*.*.*]

ImageプロパティやSaveメソッドを自分で用意しろと言っているわけではありません。
PictureBoxの変数をpictureBox1として以下のように呼び出せば保存できます。

pictureBox1->Image->Save(sfdlg->FileName, ImageFormat::Bmp);

この方法ではStreamWriterは使いません。

編集 削除
SSNS  2009-08-06 04:57:55  No: 70759  IP: [192.*.*.*]

できました!!
非常にわかりやすい説明をしていただいてありがとうございました。
またわからないことがあればよろしくお願いします。

編集 削除