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

解決


SSNS  2009-08-04 10:25:54  No: 70755

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

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

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


subaru  2009-08-04 18:53:14  No: 70756

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-05 07:31:32  No: 70757

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

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-05 08:30:52  No: 70758

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

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

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


SSNS  2009-08-06 13:57:55  No: 70759

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加