🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.lang.tcl
Article #18

65536 colors on Windows

#18
From: Katsutoshi Shibuya
Date: Fri, 30 Jan 1998 00:00
41 lines
2220 bytes
渋谷と申します。

Tcl7.6/Tk4.2 + jp-patchをWindowsNT4.0で使用しています。

Photo Imageを利用して、
image create photo myImage -file "henoheno.gif"
のようにGIFファイルを読み取り、これを
canvas .can
.can create image 0 0 -anchor nw -image myImage
のようにしてキャンバスに表示させています。

このようなプログラムを 256色モードのディスプレイで実行すると、
イメージがちゃんと表示されるのですが、65536色モードに切り替えて
実行すると、色がめちゃくちゃになってしまいます。

Tkのソースコードを読んだりして、私なりに調べて分かったことを書きますと、

Windows APIのGetDeviceCapsを使ってディスプレイの属性を調べてみた
ところ、256色の時にはRC_PALETTEフラグがたっており(カラールックアップ
テーブル使用可能)、65536色の時にはたっていない。

このため、Tkは256色モードの時には8bit PseudoColorとして取り扱って
正常に動作する。
しかし、65536色の時には16bit TrueColorとして取り扱ってしまう。
本当ならば、16bit StaticColorとして扱い、Windowsで定義しているカラー
テーブルを利用しなければいけないのに、それが行なわれていない。

という理由で、Photo ImageのCanvasへの表示がうまく行かないのだと
考えました。

そこで、質問なのですが、

- この問題を解決するパッチ等はあるでしょうか?
- GIFイメージを65536色ディスプレイに正しく表示する他の手法があるで
しょうか?
- Tk8.0 for Windowsでも同様の問題が発生するのでしょうか?
(現在Tk8.0をダウンロード中ですので、近々自分で確認しますが。)

以上、なにか御存じの方がいらっしゃいましたら、どうかよろしくお願い
いたします。
Technical Details
Message-ID: <B0F770249668F8680B@marcos.bu-denken.co.jp>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS
X-Google-Thread: 15a83d,aff1e776e06a6856,start
X-Google-Attributes: gid15a83d,public
From: shibuya@mxb.meshnet.or.jp (Katsutoshi Shibuya)
Subject: 65536 colors on Windows
Date: 1998/01/30
Message-ID: <B0F770249668F8680B@marcos.bu-denken.co.jp>
X-Deja-AN: 320455345
Content-Transfer-Encoding: 8bit
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-2022-jp
Organization: BU-Denken Co.,Ltd.
Newsgroups: fj.lang.tcl