- - PR -
Bitmapのカラーパレットについて
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-07-25 08:53
Hongliangさん、れいさんご回答ありがとうございます。
お二人のご指摘の通り、ImageAttributesクラスとColorMapクラスを使用したら簡単にしかも高速に実現することができました。ありがとうございます。 れいさんからの
についてですが、ストリームから取得するときにPixelFormatを指定できないため
自動的に作成したBitmapがPixelFormat.Format32bppArgbとなってしまい、 これが原因だと思うのですが、パレットのデータが空になってしまします。 話が戻ってしまいますが、前回の私の書き込みのようにパレットのデータを取得する 必要が今後でてきそうです。何か良い方法はありますでしょうか? パレット付のデータだと分かっていて、ストリーム(の途中)から画像データを 取得する場合のパレットデータが欲しいです。 前回の私の書き込んだプログラムでできると思ったのですが、
のGIFにするというのはどういった方法でしょうか? 良いアドバイスをお願いします。 | ||||||||||||||||
|
投稿日時: 2007-07-25 10:08
今日は
カラーパレツトの取り出しだけなら Image img = Image.FromStream(ストリーム); カラーパレツト = img.Palette; で出来きませんか。 | ||||||||||||||||
|
投稿日時: 2007-07-25 11:35
icmで色が変更されてるか msにパレットが入ってないか どちらかではないでしょうか? ストリームでもpixelformat指定できなくても パレットは入ります。
パレット付きのデータならパレットは付きます。
減色アルゴリズムを書くのがめんどくさかったので 一度gifで保存して減色したというだけの話です。 | ||||||||||||||||
|
投稿日時: 2007-07-25 12:59
バイナリエディタでbmpファイルを開いて
Bitmap Structures http://msdn2.microsoft.com/en-us/library/ms532301.aspx だとか WinGDI.h (私の環境ではC:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\WinGDI.hとか C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include にあります。) にある構造体の定義と と見比べてみればbmpファイルの情報がいろいろとわかりますよ。 [ メッセージ編集済み 編集者: IIJIMAS 編集日時 2007-07-25 13:03 ] | ||||||||||||||||
|
投稿日時: 2007-07-30 08:52
rvmxさん、れいさん、IIJIMASさんご回答ありがとうございます。
取得したかった画像データはPNGフォーマットのものですが、 グラフィックソフトで256色に減色する等して、ソフト上でパレットが表示されていても 保存時はパレット情報は吐き出されない(場合が多い?)ため パレット情報が存在しないという結論に至りました。 複数のソフトでためしたのですが、PNG形式でパレットが用いられるのは 稀ということでしょうか? もし、PNG形式のものでパレット付の画像データが保存できるソフトを ご存知の方がいらっしゃったら教えてください。 IIJIMASさん Bitmapの情報をいろいろと調べてみます。貴重な情報ありがとうございました。 | ||||||||||||||||
|
投稿日時: 2007-07-30 10:17
たとえば、WindowsXPに付属しているPaintでも「C:\WINDOWS\シャボン.bmp」を開いて名前を付けて保存時に「png形式」で別のファイルに保存すれば、そのファイルには 前のスレッド 件名:パレット付き画像のストリームからの取り込みについて http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=40354&forum=7&7 でも書いたとおりバイナリエディタで開くとPLTE(50 4C 54 45)がありますよ。 bmpではIndexedのbmpとなっていた場合にPLTEのあるpngに変換されるのだと思います。
このスレッドに書いたリンク先はビットマップ形式(.bmpなど)の情報ですよ。 PNG形式であれば前のスレッドにも書いた PNG (Portable Network Graphics) Specification http://www.w3.org/TR/REC-png-multi.html と関連リンクをご参照ください。 | ||||||||||||||||
|
投稿日時: 2007-08-02 09:36
IIJIMASさん。ご回答ありがとうございました。
上記の方法でパレット付きのPNGファイルを作成することができました。 悩んでいたところが解決できそうです。 ありがとうございました。 |