- ベストアンサー
pictureBoxに表示する方法
始めまして、プログラム作成初心者です。 今、pictureBox1に選択した画像を表示し、ボタンを押すと pictureBox2にpictureBox1の画像を白黒にして表示するプログラムを作成しています。 http://www.bobpowell.net/grayscale.htm のprivate void Form1_Load(object sender, System.EventArgs e) を参考に作ってみようと思っているのですが、 これをpictureBox2に表示するようなプログラムが良くわかりません。 分かられる方、よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ごめんなさい VCだったんですね … VCのバージョンは何でしょう? 2002/2003/2005? マネージ拡張形式なら 2002/2003なら Image* pImg = Image.FromFile(L"イメージのフルパス"); Image* pBm = ConvertToGrayScale( pImg ); pictureBox1.set_Image( pImg ); といった具合です 2005なら Image^ pImg = Image.FromFile(L"イメージのフルパス"); Image^ pBm = ConvertToGrayScale( pImg ); pictureBox1.set_Image( pImg );
その他の回答 (1)
- redfox63
- ベストアンサー率71% (1325/1856)
ほとんどそのままのように思いますよ イメージファイルを読み込んでこれからGraphicsオブジェクトを作成し ピクセルごとに処理する 出来上がったイメージをPictureBox2のImage(またはBackgroundImage)プロパティに設定といった具合だと思います Sub Form_Load() dim img as Image = Image.FromFile("イメージファイルのフルパス") dim bm as Image = ConvertToGrayScale( img ) PictureBox2.Image = bm End Sub といった具合でしょう ご提示のURLのForm_Loadイベントでは ColorMatrixを使って色の変換を行っています ピクセルごとの処理をフレームワークに任せているのです ColorMatriixは5x5の行列を使ってピクセルの色を計算する仕組みです 詳細を調べて無いので順序がよく分かりませんが R,G,B,アルファ,wの要素があるのだと思います コメントアウトされた部分が 0.3,0.59,0.11の係数でグレースケール変換する部分だと思いますよ
お礼
ありがとうございます。 解決できました。