C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: BMP 8ビット


(過去ログ 40 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■21006 / inTopicNo.1)  BMP 8ビット
  
□投稿者/ かんだ (1回)-(2008/06/23(Mon) 14:40:57)

分類:[.NET 全般] 

VC++2005で、マネージアプリケーションです。

BMPの色情報を読み込みたいのですが、上手くいきません。

通常の24ビットならGetpixel関数で読み込め、Set〜で表示することができたのですが、8ビットではこれらの関数を使うことはできません。

自分なりにBMPについて調べ、これらの関数が使えない理由はうっすらわかったのですが、

では、どうすれば読み込め、色情報を少しいじって(白黒画像なら反転させるなど)、それを表示できるのか、わかりません。

そのような関数があるのでしょうか?

ご教授お願いします。
引用返信 編集キー/
■21011 / inTopicNo.2)  Re[1]: BMP 8ビット
□投稿者/ 渋木宏明(ひどり) (790回)-(2008/06/23(Mon) 15:34:08)
渋木宏明(ひどり) さんの Web サイト
> そのような関数があるのでしょうか?

無いです。

24bit/32bit カラーで扱うか、アンマネージなコードを書くしかないです。

引用返信 編集キー/
■21014 / inTopicNo.3)  Re[2]: BMP 8ビット
□投稿者/ Hongliang (278回)-(2008/06/23(Mon) 16:00:17)
// GetPixel「関数」って書かれたからGDI関数の方かと……。

色情報をいじるだけなら Palette プロパティから ColorPalette 取ってきて操作するだけですね。
引用返信 編集キー/
■21015 / inTopicNo.4)  Re[1]: BMP 8ビット
□投稿者/ PATIO (86回)-(2008/06/23(Mon) 16:10:25)
No21006 (かんだ さん) に返信
> VC++2005で、マネージアプリケーションです。
>
> BMPの色情報を読み込みたいのですが、上手くいきません。
>
> 通常の24ビットならGetpixel関数で読み込め、Set〜で表示することができたのですが、8ビットではこれらの関数を使うことはできません。
>
> 自分なりにBMPについて調べ、これらの関数が使えない理由はうっすらわかったのですが、
>
> では、どうすれば読み込め、色情報を少しいじって(白黒画像なら反転させるなど)、それを表示できるのか、わかりません。

8ビットカラーのビットマップの構造をきちんと理解していれば、画素情報だけを見ても駄目だと言うのは
わかると思います。色情報をどうにかするには実際の色を拾ってくるしか有りませんからね。
で、何処から拾ってくるかと言う話になると既にHongliangさんが書いておられるのでそれを参考にされると良いと思います。
8ビットカラーの場合パレットの数に上限が有りますから、どんな弄り方も可能かと言うとそうは行かないでしょう。
パレットに入っている色の範囲でなら何とでもなりますけれど、パレットを弄るとそのパレットを使っている全ての画素に
影響が出ますから、影響が出ても良いような操作で無いとパレットを直接弄るのは駄目と言う話になります。
画面全体を反転とかなら大丈夫そうですけどね。
画像の一部分だけを対象に色を弄りたいと言う話になるとかなり考える必要があると思いますよ。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -