Thread View: fj.lang.tcl
2 messages
2 total messages
Started by Katsutoshi Shibuya
Fri, 30 Jan 1998 00:00
65536 colors on Windows
Author: 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をダウンロード中ですので、近々自分で確認しますが。) 以上、なにか御存じの方がいらっしゃいましたら、どうかよろしくお願い いたします。
Re: 65536 colors on Windows
Author: Katsutoshi Shibuya
Date: Tue, 03 Feb 1998 00:00
Date: Tue, 03 Feb 1998 00:00
39 lines
2458 bytes
2458 bytes
渋谷と申します。
In article <B0F770249668F8680B@marcos.bu-denken.co.jp>,
shibuya@mxb.meshnet.or.jp (Katsutoshi Shibuya) wrote:
> 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色モードに切り替えて
> 実行すると、色がめちゃくちゃになってしまいます。
という件についてですが、ある方からTcl/Tk 8.0では改善されているらしいという
情報を頂き、さっそくダウンロード/実験してみたところ、65536色でもちゃんと
表示されました。
Windows版は日本語化パッチがまだ無いので、日本語の使用に関して不安だったの
ですが、"{"とか"["とかのコードを含む一部の文字の利用に気をつければ、日本語
の表示と入力も可能であるようなので、8.0を利用することに決めました。
しかし、何枚ものGIFイメージファイルを読んで表示させているうちに、色が
おかしくなることに気がつきました。先に表示させていたイメージのなかの
いくつかの色が、後に読み込んだイメージの色(と思われる)で置き換わる
という現象です。
この現象は、Windows版に限らず、UNIX版Tcl/Tk8.0p2やTcl/Tk8.0p2+jp_patch
(LINUX2.0.29上 8bit PseudoColorで動作)でも同じことが発生したので、
ディザのルーチンのバグではないかと考えております。
あらためて、この現象について何か御存じの方は教えていただけないでしょうか。
#ここ数日、当方で利用しているニュースサーバの配送の調子が悪くなって
いるような気がします。情報を頂いておきながらお礼を申し上げていないケースが
ありましたら、おわび申し上げます。
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads