2007/12/22(土) [n年前の日記]
#3 [iappli] 結局テーブルでアタリを持つことに
障害物の画像差し替え時に調整作業で苦労するのは嫌だなと。ということで、ドット打ちが必要になるけど作業は判りやすい、テーブルで当たりを持つ方向で。
画像中のドットを読んで、javaソースの形で出力するPythonスクリプトを作成。また、作業用に繋げたgif画像を分割するスクリプトも作成。
画像中のドットを読んで、javaソースの形で出力するPythonスクリプトを作成。また、作業用に繋げたgif画像を分割するスクリプトも作成。
◎ GIFの扱いで悩む。 :
_PILの image.copy() や image.crop()
を使ったのだけど、保存した gif画像は、パレットの並びが元画像のソレとは違う状態・未使用色が多数含まれる無駄が多い状態に。また、背景の透明色指定も消えている。うーむ。
複数のgif画像に対して、逐一、透明色指定をするのが面倒なわけで。何かいい手はないものか。手持ちのOPTPiXは、複数画像に対する処理の際、減色、かつ、パレット並びを共通化することはできるけど。透明色指定が自由にできない・一番暗い色がパレット0=透明色になってしまうし。自分が作業する際は、えてして透明色をピンクや水色にして作業しやすくしているわけで…。
検索してたら自分の日記に辿り着いた。IrfanViewで、パレット番号を指定して透明色指定ができる・一括保存できるらしい。試してみた。透明色指定したパレット番号の色は黒になってしまうけど、一応透明色指定ができてるようではある。しかし、保存した gif はパレットが256色になってしまうようで。実際は32色も使ってないのに…。
GiFFYというツールを使えば、使用してるパレット数に最適化できる。が、GUI操作・一ファイルずつしか操作できない。AutoHotKeyスクリプトでも書くか…。
本当に GiFFY はGUI操作しかできないのだろうか。と疑問に思って検索したら、コマンドラインでも使えるらしい。知らなかった。ていうか添付されている html にちゃんと書いてあるがな。試してみたところ、GiFFY.exe /a old.gif new.gif で最適化保存ができるらしい。であれば、後はバッチファイルを書けば…。
複数のgif画像に対して、逐一、透明色指定をするのが面倒なわけで。何かいい手はないものか。手持ちのOPTPiXは、複数画像に対する処理の際、減色、かつ、パレット並びを共通化することはできるけど。透明色指定が自由にできない・一番暗い色がパレット0=透明色になってしまうし。自分が作業する際は、えてして透明色をピンクや水色にして作業しやすくしているわけで…。
検索してたら自分の日記に辿り着いた。IrfanViewで、パレット番号を指定して透明色指定ができる・一括保存できるらしい。試してみた。透明色指定したパレット番号の色は黒になってしまうけど、一応透明色指定ができてるようではある。しかし、保存した gif はパレットが256色になってしまうようで。実際は32色も使ってないのに…。
GiFFYというツールを使えば、使用してるパレット数に最適化できる。が、GUI操作・一ファイルずつしか操作できない。AutoHotKeyスクリプトでも書くか…。
本当に GiFFY はGUI操作しかできないのだろうか。と疑問に思って検索したら、コマンドラインでも使えるらしい。知らなかった。ていうか添付されている html にちゃんと書いてあるがな。試してみたところ、GiFFY.exe /a old.gif new.gif で最適化保存ができるらしい。であれば、後はバッチファイルを書けば…。
◎ _連載:Windows 2000コマンドライン徹底活用 第7回 forコマンド(その1) -- 1.forコマンドの基本 :
最初、ずらずらとコマンド指定を書いてたのだけど。たしか繰り返しの処理ができたはずだなと思いだした。ということで、for を使って一行で。
これって、変な書き方をすると、新しく生成したファイルを再度読み込んで処理、とかになったりしないのかしら。for が実行される前に、カレントフォルダ中のファイル一覧を取得して、それに対して判別してるなら問題はないのだろうけど、1回処理するたびにまたファイル一覧を読んでたらちょっと危ないよな。いやいや。いくらなんでもそんなアホなつくりはしないよな…。>MS-DOSの類。
for %%V in (hoge*.gif) do "C:\Program Files\GiFFY\GiFFY.exe" /a %%V new_%%Vバッチファイル中に書く場合は、%V を %%V と書くことに注意。これで、hoge*.gif が、new_hoge*.gif で最適化保存された。
これって、変な書き方をすると、新しく生成したファイルを再度読み込んで処理、とかになったりしないのかしら。for が実行される前に、カレントフォルダ中のファイル一覧を取得して、それに対して判別してるなら問題はないのだろうけど、1回処理するたびにまたファイル一覧を読んでたらちょっと危ないよな。いやいや。いくらなんでもそんなアホなつくりはしないよな…。>MS-DOSの類。
[ ツッコむ ]
以上です。