• ベストアンサー

pictureBoxに表示する方法

始めまして、プログラム作成初心者です。 今、pictureBox1に選択した画像を表示し、ボタンを押すと pictureBox2にpictureBox1の画像を白黒にして表示するプログラムを作成しています。 http://www.bobpowell.net/grayscale.htm のprivate void Form1_Load(object sender, System.EventArgs e) を参考に作ってみようと思っているのですが、 これをpictureBox2に表示するようなプログラムが良くわかりません。 分かられる方、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.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 );

a_mi
質問者

お礼

ありがとうございます。 解決できました。

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

ほとんどそのままのように思いますよ イメージファイルを読み込んでこれから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の係数でグレースケール変換する部分だと思いますよ

関連するQ&A