- 関連ページ
-
- ページ案内
-
フルカラー対応版について。
フルカラー対応版は、その名の通り、フルカラーにも対応したヴァージョンです。
以下の場合にフルカラー扱いとなります。
- フルカラーの画像を連結した場合。
- インデックスドカラーの画像のみの連結で、利用しているパレットの色数が256色を越えた場合。
大きな変更点。(平成17年 7月31日)
これまで、PNG非対応環境に対しては、JPEG画像を配信しておりましたが、第1.80版(平成17年 7月31日)からは減色GIF画像に変換して配信するようになりました。
これは、JPEG画像の生成処理がサーヴァにとって非常に大きな負荷となるためです。
GIF画像は生成処理は最も高速なため、PNG画像非対応環境でアクセスした場合の負荷が大幅に軽減される事となります。
- 実際には減色処理が入るため、「zlib.pm」利用のPNG画像とほぼ同じ処理時間となります。
- 生成されるファイルのサイズは、大体フルカラーPNG画像の半分くらいとなり、これは従来生成していたJPEG画像とほぼ同じです。
尚、従来版(第1.61版以前)をご利用の方は、以下のような手順でアップデートして下さい。
- 新たに追加された「putReduceGIF.pl」を設置する。
- 「putcatbmp.pl」が仕様変更となったので差替える。
- 「putJPG.pl」は不要となるので削除する。
スクリプトの内容。
現在、以下の六つのスクリプトがセットされております。
- putcatbmp.pl
- スクリプトの本体で、以下の五つのスクリプトを呼出しております。
- BMPcat.pl
- ビットマップ画像を連結してそのデータを返すスクリプトです。
- putGIF.pl
- GIF画像を生成して出力するスクリプトです(インデックスドカラー専用)。
- putReduceGIF.pl
- フルカラー画像を216色に減色してGIF画像として出力するスクリプトです(フルカラー専用)。
- putPNG.pl
- PNG画像を生成して出力するスクリプトです。サーヴァがCompress::Zlibをサポートしていない場合は以下のスクリプトを利用します。
- Deflate.pl
-
サーヴァがCompress::Zlibをサポートしていない場合に代用するスクリプトです。
- GIF専用版及びPNG対応版の「putcatbmp.pl」とフルカラー対応版の「putcatbmp.pl」は別物です。他の版へ変更される場合、或いはその逆の変更の場合は必ず「putcatbmp.pl」の上書きも行って下さい。
- フルカラー対応版の「putPNG.pl」はPNG対応版の「putPNG.pl」を拡張したものです。PNG対応版から変更される場合は必ず「putPNG.pl」の上書きも行って下さい(逆にPNG対応版へ変更される場合は上書きは不要ですが、無駄な処理が入っているのでやはり上書きした方が良いでしょう)。
- 旧ヴァージョンではPNG画像非対応環境向けにはフルカラー扱いの場合にはJPEG画像を配信しておりましたが、第1.80版(平成17年 7月31日)からは減色GIF画像を配信するものとしました。この結果、「putReduceGIF.pl」が追加され、代りに「putJPG.pl」は不要になり、「putcatbmp.pl」も変更されております。
フルカラーでの扱い。
フルカラー画像は、原則としてPNG画像にして配信しますが、PNG画像に対応していない環境へは216色に減色してGIF画像を配信するようにします。
ブラウザがPNG対応かどうかの判断。
アクセス時のリクエストヘッダ内のACCEPTフィールドに「image/png」が含まれている場合、無条件でPNG画像対応と判断されます。
しかしながら、インターネットエクスプローラではリクエストヘッダ内のACCEPTフィールドに「image/png」が含まれていないため、このままではインターネットエクスプローラは常にPNG画像非対応と見做されてしまいます。
このため、インターネットエクスプローラ5.0以降である事をユーザエージェント文字列から判断出来た場合も、PNG画像対応と判断します。
- 携帯電話(ドコモ・KDDI/ツーカー・ソフトバンク), 及びインターネットエクスプローラ4.x以前は上記に拘らず一律PNG非対応と見做します。
尚、インターネットエクスプローラのコンポーネントを利用しているブラウザ(ドーナツやルナスケープ等)には、ユーザエージェント文字列に独自のものを用いるものがあり、その場合PNG非対応と誤認される事があります。
PNG対応ブラウザの場合。
- 「Zlib.pm」を実装しているサーヴァでは、PNG対応ブラウザには必ずPNG画像で発行します。
- 「Zlib.pm」を実装していない場合は、減色してGIF画像で発行します。
- 「putcatbmp.pl」の冒頭の「
$forcePNG=0;
」を「$forcePNG=1;
」に設定した場合は、上記に拘らずPNG画像で発行します。
PNG非対応ブラウザの場合。
常にGIF画像での発行となります。
フルカラー画像の場合は216色に減色されます。
PNG画像について。
フルカラー画像をPNG画像として発行する場合、PNG画像には当然フィルタが掛けられます。
フィルタについては、制作者が行ってきた実験の結果を踏まえて、フルカラーでは常に「ピースのフィルタ」に固定しております。
- 発表当初は適切なフィルタを撰ぶようにしておりましたが、実験を続けた結果、ピースのフィルタに固定した方が、下手にフィルタを撰ぶより効率が良い事が判明したのです。
尚、フルカラー対応版でのPNG生成ルーティンでは、「Zlib.pm」を実装していないサーヴァが大き過ぎる画像を処理しようとした場合、無圧縮PNGを発行するようになっております。
-
圧縮前の画像が115,200オクテットを越えている場合、大き過ぎる画像
とみなします。
圧縮前の画像の大きさは、アルファチャネル無しの8ビット型トゥルーカラーの場合(このスクリプトが利用している形式)は以下の式で求められます。
また、現状ではビットマップからの変換のため、アルファチャネルを使わないようにしましたが、将来の拡張に備えて対応出来るようにはしております。
携帯電話でお使いの場合。
携帯電話について、フルカラー画像を扱う場合は以下の点にご留意下さい。
- WAP 1.0端末へもGIF画像に変換されます。
- フルカラー画像の場合、生成ファイルの容量が大きくなり過ぎる可能性もありますのでご留意下さい。
インデックスドカラーの扱い。
インデックスドカラーの場合は常にGIF形式での発行となります。
- 但し、ソフトバンク携帯電話の場合はPNG形式となります。その他のブラウザへはPNG画像を指定する事は出来ません。