Imageプロパティにビットマップを入れるには?

解決


夏の朝も天玉うどん  2006-12-09 22:48:09  No: 63874

初めまして、よろしくお願いいたします。
環境はVC++2003.NETです。
ビットマップに以下のように画像を取り込んで加工し
bmp->FromFile(openFileDialog1->FileName);

それを以下の*****でImageに設定したいのですが
this->pictureBox2->Image = *****;
今朝から半日調べても解決しませんでした。
VBなら以下でできてしまうのですが、
PictureBox2.Image = bmp
Imageに設定できれば再描画とか考えなくても済むので
何とかここに設定できる手段を知りたいのですが、
よろしくお願いします。


夏の朝も天玉うどん  2006-12-09 23:07:04  No: 63875

自己レス・追記です。
bmp = new Bitmap(this->pictureBox1->Width,this->pictureBox1->Height, System::Drawing::Imaging::PixelFormat::Format24bppRgb); 

bmp->FromFile(openFileDialog1->FileName);
this->pictureBox2->Image =bmp;
このようにした場合にpictureBox2は真っ黒になりました。


Blue  2006-12-09 23:51:51  No: 63876

>bmp->FromFile(openFileDialog1->FileName);
とりあえず、これはbmpにビットマップオブジェクトを読み込んでいるわけではありません。
FormFileはImageオブジェクトを返すstaticメソッドです。

以下適当にやってみた。

(1)
Bitmap* bmp = Bitmap(Bitmap::FromFile("XXXX.bmp"), this->pictureBox1->Size);
this->pictureBox1->Image = bmp; 

(2)
Bitmap* bmp = gcnew Bitmap(this->pictureBox1->Height, this->pictureBox1->Width, Imaging::PixelFormat::Format24bppRgb);
Image* img = Bitmap::FromFile("XXXX.bmp");
Graphics* g = Graphics::FromImage(bmp);
g->DrawImage(img, 0, 0, bmp->Width, bmp->Height);
this->pictureBox1->Image = bmp; 

(3)
this->pictureBox1->Image = Bitmap::FromFile("XXXX.bmp");


Blue  2006-12-09 23:53:17  No: 63877

訂正)
2005で書いていたので、余分な箇所が残ってしまった。

> Bitmap* bmp = Bitmap(Bitmap::FromFile("XXXX.bmp"), this->pictureBox1->Size);
Bitmap* bmp = new Bitmap(Bitmap::FromFile("XXXX.bmp"), this->pictureBox1->Size);

>Bitmap* bmp = gcnew Bitmap(this->pictureBox1->Height, this->pictureBox1->Width, Imaging::PixelFormat::Format24bppRgb);
Bitmap* bmp = new Bitmap(this->pictureBox1->Height, this->pictureBox1->Width, Imaging::PixelFormat::Format24bppRgb);


夏の朝も天玉うどん  2006-12-10 00:46:45  No: 63878

Blue様

出来ました。
二つのピクチャボックスにLenaさん
(画像編集・操作の定番画像)が微笑んでいます。

お世話になりました。ありがとうございます。


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

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






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