<< ChangeCostume() release 1.0 >> (C) Copyright 1999 みでぃ: midi@mx5.nisiq.net    最新版−>http://plaza.harmonix.ne.jp/~midi/library/costume.htm これはPerlで動的にGIFファイルを連結して重ね合わせた絵を作る スクリプトです。CGIとしての動作を前提としています。 まだバグが残っている恐れがあるため、現バージョンにおいてはCGI についてわかっている人向けのリリースです。説明も簡潔です。 Perl5での動作は確認していますが、Perl4での動作チェックは行って いません。もし動かなくても少しスクリプトを書き換えれば動くよう になるはずです。特有の処理は行っていないはずですので…。   ・必要なファイル ・costume.cgi ・giflib.pl(gifcat.plを改造したもの)   ・おまけのファイル ・Readme.txt(このファイル) ・imageディレクトリの画像 ・index.html(CGIへの値の渡し方がわかります。)   ・使い方 1.GIFファイルを用意します。一番下になる絵以外は透過GIFにして下  の絵が透けるようにします。サイズは同じものを用意してください。  もしサイズが同じでない場合は、左上で揃えられます。  また、エラー表示用の絵も作ってください。  これらの絵を一つのディレクトリに入れます。 2.costume.cgiを編集します。  ・$ImagePathにGIFファイルのあるディレクトリの相対パスもしくは   絶対パスを設定します。(/含む)  ・$PreImageNameに画像の名前の前半部を入れます。(後の説明参照)  ・$DefaultImageに一番下になる絵のファイル名を入れます。  ・$ErrorImageにエラー表示用の絵のファイル名を入れます。 3.costume.cgiに値を渡すhtmlファイルを作ります。  値はフォーム等で送って下さい。 ※表示される絵:($DefaultImage= 'yuzu.gif'の時)  costume.cgi?hair=mituami&huku=shirts1&skirt=mini   >yuzu.gif + mituami.gif + shirts1.gif + mini.gif  costume.cgi?atama=ribbon&megane=00&huku=attaka   >yuzu.gif + ribbon.gif + attaka.gif    (値が00のものは表示されない)  costume.cgi?image=mary&atama=bousi&megane=88&huku=attaka   >mary.gif + bousi.gif + 88.gif + attaka.gif    (imageを指定すると一番下の画像を変更) 後で指定したもので絵が上書きされますので、 順番を間違えないようにして下さい。   ※セキュリティについて  GIF画像といっても大量に連結するとサーバに負担をかけます。  悪意のある第三者がいるとも限らないので、一応使える画像を  限定する機能を設けています。$ImagePathと$PreImageNameで  す。これを使うと表示する絵を限定することができます。  例えば$PreImageName = 'pen';だと、  costume.cgi?image=mary&atama=bousi&megane=88&huku=attaka   >mary.gif + penbousi.gif + pen88.gif + penattaka.gif (pen***.gifを表示)  …もっとも使える画像だけで何回も連結されるとだめですが。  (連結回数制限か他のサイトからのアクセスを許可しない?)   ・その他の注意事項 ・エラー用GIFファイルは要求した画像が無い時に表示されます。  画像のフォーマットが違う時などには対応していません。 ・GIF画像としてアニメーションGIFを用意すると表示がおかしくなりま  す。そういう仕様です。 ・NN2.0ではたぶん正しく動きません。   ・これから付け加わる予定のある機能。(簡単にできるもの) ・ある色を別の色に変える。 ・背景色を変える。 ・繰り返し制御。 ・データベースによる位置指定 このプログラムは、フリーソフトウェアです。 配布、改造、転載は自由とします。ただし、gifcat.plを改造して 使用しているため、配布の際はgifcat.plの添付を忘れないで下さい。 また、gifcat.plの著作権情報はgifcat.plを参照してください。 バグ報告、要望、質問、感想等をお待ちしております。 みでぃ: midi@mx5.nisiq.net http://plaza.harmonix.ne.jp/~midi/