• ベストアンサー

vc++にて、画像の色の情報表示プロパティをおしえてください。

vc++のマネージ形式で,bmpやjpgの画像からこの画像は、4byte、あの画像は24byteとの色情報が使われてるとか色情報をbuttonを押してlabelに表示したいのですがどのプロパティを使えばいいかわかりません。MSDNでも探しましたけどわかりませんでした。初心者なので適切に教えてくれたらうれしいです。

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

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

色深度の単位に Byteは使いません 一般的には bitを使います Imageオブジェクトに画像ファイルからの読み込みはできているのでしょうから img->PixelFormatを参照すれば 何bit可能判定は可能でしょう int nColorDepth = 0; switch( img->PixelFormat ) { case Format1bppIndexed:   nColorDepth = 1;   break; case Format4bppIndexed:   nColorDepth = 4;   break; case Format8bppIndexed:   nColorDepth = 8;   break; case Format16bppGrayScale: case Format16bppArgb1555: case Format16bppRgb555: case Format16bppRgb565:   nColorDepth = 16;   break; case Format24bppRgb:   nColorDepth = 24;   break; case Format32bppArgb: case Format32bppPArgb: case Format32bppRgb:   nColorDepth = 32;   break; case Format48bppRgb:   nColorDepth = 48;   break; case Format64bppArgb: case Format64bppPArgb:   nColorDepth = 64;   break; } String^ ss = String::Format( "色深度は{0,2}bitです", nColorDepth ); Label1->Text = ss; といった具合でしょう

maru_min
質問者

お礼

適切なアドバイスありがとうございました。

その他の回答 (1)

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

BitmapクラスのPixelFormatプロパティを使います。 取りうる値とその意味は↓に書かれている通りなので、これらと比較した上でビット数を判断すればいいです。 http://msdn.microsoft.com/ja-jp/library/system.drawing.imaging.pixelformat(VS.80).aspx #Formatで始まらない値については無視していいです

関連するQ&A