VC++2005で、出力された(PictureBoxにはりつけられた)画像のみをBitmap形式で「名前をつけて保存」するプログラムを作っています。
しかし、知識と理解不足で、いろんなサイトを調べてやったのですがうまくいきません。
とりあえず、Bitmap形式で「名前をつけて保存」ができるようにまでにはなったのですが、保存されたBitmap形式のファイルが開けません。
おそらく、画像のデータを取得するコードがわからなかったので、適当にWriteLineというものを使ってプログラムを作ったためだと思うのですが・・。
もしかしたらPictureBoxにはりつけられた画像を保存するのだというプログラムすら怪しいです・・。
わかりにくい文章ですみません。
どなたか教えていただけたらうれしいです。
どうかよろしくお願いします。
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
返信ありがとうございます。
必死に考えて、
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: ':' の前に予期しないトークンがありました。関数の本体は無視されます。
というエラーが出てきました。
どうすればよいのでしょうか?
ない頭絞って考えたのですが、どうもわからないので、どうかお手数おかけしますが、再び教えていただけないでしょうか?
ImageプロパティやSaveメソッドを自分で用意しろと言っているわけではありません。
PictureBoxの変数をpictureBox1として以下のように呼び出せば保存できます。
pictureBox1->Image->Save(sfdlg->FileName, ImageFormat::Bmp);
この方法ではStreamWriterは使いません。
できました!!
非常にわかりやすい説明をしていただいてありがとうございました。
またわからないことがあればよろしくお願いします。
ツイート | ![]() |