Article View: fj.lang.tcl
Article #1865536 colors on Windows
From: Katsutoshi Shibuya
Date: Fri, 30 Jan 1998 00:00
Date: Fri, 30 Jan 1998 00:00
41 lines
2220 bytes
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-mailShow 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