初めまして、よろしくお願いいたします。
環境はVC++2003.NETです。
ビットマップに以下のように画像を取り込んで加工し
bmp->FromFile(openFileDialog1->FileName);
それを以下の*****でImageに設定したいのですが
this->pictureBox2->Image = *****;
今朝から半日調べても解決しませんでした。
VBなら以下でできてしまうのですが、
PictureBox2.Image = bmp
Imageに設定できれば再描画とか考えなくても済むので
何とかここに設定できる手段を知りたいのですが、
よろしくお願いします。
自己レス・追記です。
bmp = new Bitmap(this->pictureBox1->Width,this->pictureBox1->Height, System::Drawing::Imaging::PixelFormat::Format24bppRgb);
bmp->FromFile(openFileDialog1->FileName);
this->pictureBox2->Image =bmp;
このようにした場合にpictureBox2は真っ黒になりました。
>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");
訂正)
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);
Blue様
出来ました。
二つのピクチャボックスにLenaさん
(画像編集・操作の定番画像)が微笑んでいます。
お世話になりました。ありがとうございます。
ツイート | ![]() |