- 関連ページ
-
- ページ案内
-
運用マニュアル。
Perl 5用画像処理ライブラリしらぎくイメージライブラリについて、簡単に説明させていただきます。
目次。
概要。
しらぎくイメージライブラリは、Perl 5で利用出来る画像変換ライブラリです。
現在のところ、以下の機能がございます。
- GIF/JPEG/PNG画像からGIF画像への変換。
- GIF/JPEG/PNG画像からJPEG/GIF画像への変換(トゥルーカラーはJPEG画像に、その他はGIF画像に)。
- GIF/JPEG/PNG画像からPNG画像への変換。
- GIF画像からPNG画像への変換。
- PNG画像からGIF画像への変換(トゥルーカラーは強制減色でGIF化)。
- PNG画像からJPEG/GIF画像への変換(トゥルーカラーはJPEG画像に、その他はGIF画像に)。
- JPEG画像からGIF画像への変換(強制減色でインデックスドカラー出力)。
- JPEG画像からPNG画像への変換(トゥルーカラー出力または強制減色でインデックスドカラー出力)。
尚、ご利用に際して、以下の制限がございます。
- GIF画像、PNG画像ともインタレース対応です。アニメーションGIFの場合は第一コマのみが変換されます。
- JPEG画像ではベースライン方式とプログレッシヴ方式が使えます。
ライブラリスクリプトの内容。
メインスクリプト。
ライブラリスクリプトで、メインとなるのは以下のものです。
- img2gif.pl
-
GIF/JPEG/PNG画像を読込んで、GIF画像に変換するスクリプトです。
- GIF画像を読込んだ場合は無処理となります。
- トゥルーカラーJPEG/PNG画像は216色に減色されます。
-
実行には以下のスクリプトも必要です。
- config.pl
- Inflate.pl (「Zlib.pm」をサポートしているサーヴァでは不要)
- putGIF.pl
- readJPG.pl
- readPNG.pl
- img2jpg_gif.pl
-
GIF/JPEG/PNG画像を読込んで、インデックスドカラーならGIF画像に、フルカラーならJPEG画像に変換するスクリプトです。
- GIF画像/JPEG画像を読込んだ場合は無処理となります。
-
実行には以下のスクリプトも必要です。
- config.pl
- Inflate.pl (「Zlib.pm」をサポートしているサーヴァでは不要)
- putGIF.pl
- putJPG.pl
- readJPG.pl
- readPNG.pl
- img2png.pl
-
GIF/JPEG/PNG画像を読込んで、PNG画像に変換するスクリプトです。
- PNG画像を読込んだ場合は無処理となります。
- JPEG画像についてはトゥルーカラーPNG画像に変換されます。
-
実行には以下のスクリプトも必要です。
- config.pl
- Deflate.pl (「Zlib.pm」をサポートしているサーヴァでは不要)
- putPNG.pl
- readGIF.pl
- readJPG.pl
- gif2png.pl
-
GIF画像を読み込んで、PNG画像に変換するスクリプトです。
-
実行には以下のスクリプトも必要です。
- config.pl
- Deflate.pl (「Zlib.pm」をサポートしているサーヴァでは不要)
- putPNG.pl
- readGIF.pl
- png2gif.pl
-
PNG画像を読み込んで、GIF画像に変換するスクリプトです。
- 216色に減色されます。
-
実行には以下のスクリプトも必要です。
- config.pl
- inflate.pl (「Zlib.pm」をサポートしているサーヴァでは不要)
- putGIF.pl
- readPNG.pl
- png2jpg_gif.pl
-
PNG画像を読み込んで、トゥルーカラーならJPEG画像に、その他の形式ならGIF画像に変換するスクリプトです。
-
実行には以下のスクリプトも必要です。
- config.pl
- inflate.pl (「Zlib.pm」をサポートしているサーヴァでは不要)
- putGIF.pl
- putJPG.pl
- readPNG.pl
- jpg2gif.pl
-
JPEG画像を読み込んで、GIF画像に変換するスクリプトです。
- 216色減色となります。
-
実行には以下のスクリプトも必要です。
- config.pl
- putGIF.pl
- readJPG.pl
- jpg2png.pl
-
JPEG画像を読み込んで、PNG画像に変換するスクリプトです。
- 変換後の画像には216色減色とフルカラーが撰べます。
-
実行には以下のスクリプトも必要です。
- config.pl
- inflate.pl (「Zlib.pm」をサポートしているサーヴァでは不要)
- putPNG.pl
- readJPG.pl
下請スクリプト。
上記のメインスクリプトを実行するのに必要な下請スクリプトは以下の通りです。
- config.pl
- 設定ファイルです。現在のところ「read○○.pl」のみが参照します。
- Deflate.pl
-
PNG画像の生成に欠かせない、デフレート圧縮スクリプトです。
- 実際には「Zlib.pm」をサポートしているサーヴァでは不要となります。
- Inflate.pl
-
PNG画像の読込に欠かせない、インフレート展開スクリプトです。
- 実際には「Zlib.pm」をサポートしているサーヴァでは不要となります。
- putGIF.pl
- GIF画像を生成するスクリプトです。
- putJPG.pl
- JPEG画像を生成するスクリプトです。
- putPNG.pl
-
PNG画像を生成するスクリプトです。
-
実行には以下のスクリプトも必要です。
- Deflate.pl (「Zlib.pm」をサポートしているサーヴァでは不要)
- readGIF.pl
-
GIF画像を読込むスクリプトです。
- readPNG.pl
-
PNG画像を読込むスクリプトです。
-
実行には以下のスクリプトも必要です。
- config.pl
- inflate.pl (「Zlib.pm」をサポートしているサーヴァでは不要)
- readJPG.pl
-
JPEG画像を読込むスクリプトです。
実際にご利用になるには。
-
まず「config.pl」を設定適宜設定して下さい。
- 設定が無い場合、本ライブラリを設置しているディレクトリより上位のディレクトリへのアクセスが出来ません。
- 設定された場合も、設定されたディレクトリより上位のディレクトリへのアクセスは出来ません。
- この設定が不要な場合は、「readGIF.pl」「readJPEG.pl」「readPNG.pl」冒頭二行目の「
require './config.pl';
」の行を削除する事も出来ます。この場合に限り「config.pl」をサーヴァに置く必要も無くなります。
- 続いて、ご利用になりたいスクリプト(gif2png.pl または png2gif.pl)と、指定されたスクリプトをサーヴァの同一ディレクトリに設置します。
- ライブラリを呼出す場合は、ご利用のスクリプトを require文で呼出してからにして下さい。
-
実際の呼び出し方は以下の通りになります。
-
require './gif2png.pl';
&img::gif2png(
GIF画像ファイルへの相対パス);
-
require './png2gif.pl';
&img::png2gif(
PNG画像ファイルへの相対パス);
-
require './png2jpg_gif.pl';
&img::png2jpg_gif(
PNG画像ファイルへの相対パス);
-
require './jpg2gif.pl';
&img::jpg2gif(
JPEG画像ファイルへの相対パス);
-
require './jpg2png.pl';
&img::jpg2png(
JPEG画像ファイルへの相対パス,
モード);
モード
は出力をフルカラーPNGにするなら「1
」, 減色PNGならにする「0
」を入れます。
とする事で、標準出力には変換されたバイナリデータが指定のMIMEタイプで送り出されます。
-
尚、変換される画像は相対パスで指定します。
- 「config.pl」でディレクトリ指定をしている場合は、指定されたディレクトリ基準となります。
- 「config.pl」でディレクトリ指定をしていない場合は、ライブラリの設置ディレクトリ基準となります。
ご注意願いたい事。
-
大き過ぎるJPEG画像を出力させようとすると、サーヴァに過剰な負荷が掛かったり、サーヴァの設定に依っては処理途上で強制終了となる事もあります。
- 最大でも320×300ピクセルズ程度以内にしておけば問題は無いでしょう。
-
「putPNG.pl」では「Zlib.pm」を実装していないサーヴァが大き過ぎる画像を処理しようとした場合、無圧縮PNGを発行するようになっております(圧縮前の画像データが115,200オクテット以上)。
-
オクテット数の計算方法は以下の通りとなります。
- 1ビット型インデックスドカラーの場合。
- (端数切上(画像の横ピクセル数÷8)+1)×画像の縦ピクセル数。
- その他の場合。
-
(画像の横ピクセル数+1)×画像の縦ピクセル数×定数。
「定数」はインデックスドカラーは1、アルファチャネルなしのトゥルーカラーは3、アルファチャネル付きのトゥルーカラーは4です。
また、3色以上のインデックスドカラーのPNG画像は、圧縮の有無及び圧縮方法によって以下のように変わります。
- Deflate.plを用いない場合(Zlibで圧縮する場合及び無圧縮とする場合)。
-
3色以上のインデックスドカラーは常に8ビット型となります。
- 16色以下の場合、4ビット型や2ビット型に変換する事も出来ますが、Zlibで圧縮する場合や無圧縮の場合は8ビット型で処理した方が速いのが理由です。
- Deflate.plを用いる場合。
-
16色以内は4ビット型、17色以上は8ビット型となります。
- 16色以内の場合は4ビット型に変換する事で、8ビット型で処理するより速いからです。
尚、4色以内の画像も4ビット型とし、2ビット型には変換しません。
- 2ビット型に変換すると、4ビット型で処理するより時間が掛かってしまうからです。
尚、2色以内のインデックスドカラーのPNG画像は常に1ビット型となります。
-
フルカラーのPNG画像は原則的にピースのフィルタを掛けますが、無圧縮の場合は無処理フィルタとなります。
- これは、圧縮しない場合のフィルタ処理は全く意味が無いためです。
- 日本国外のサーヴァで利用される場合、JPEG画像の展開ルーティンが特許に抵触する可能性がありますが、法的な問題が起きた場合も制作者は一切関知致しません。