• ベストアンサー
  • すぐに回答を!

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

  • 質問No.4355831
  • 閲覧数250
  • ありがとう数1
  • 回答数2

お礼率 5% (6/106)

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

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

  • 回答No.2
  • ベストアンサー

ベストアンサー率 71% (1325/1856)

色深度の単位に 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

お礼率 5% (6/106)

適切なアドバイスありがとうございました。
投稿日時:2008/09/25 18:25

その他の回答 (全1件)

  • 回答No.1

ベストアンサー率 45% (1080/2394)

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

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ