11:48 2004/06/21 suga@snpn.net resize.pl 外部コマンドとかを叩きまくってサムネイルつくります 環境依存なので使えるものをリネームして使ってください resize.pl.magick -> PerlMagick resize.pl.netpbm -> NetPBM/JpegProgs resize.pl.re -> repng2jpeg check.cgiで使えそうな奴調べてをresize.plにリネームしてください。 Unixならシェルアカウントさえあればなんとかなると思います(´・ω・`) -------------------------------------------- | |PerlMagick| NetPBM |repng2jpeg| -------------------------------------------- | Linux | ○ | ○ | *◎ |*i386のみ | FreeBSD | ○ | ○ | *◎ |*i386のみ | Solaris | ○ | ○ | *◎ |*i386/sparc | Windows | ○ | | ◎ | | .etc | ○ | ○ | ○ | -------------------------------------------- ○ インストールしなければ使えないかもしれないもの ◎ バイナリアップロードすれば使えるかもしれないもの check.cgiで PerlMagick/NetPBMにOKが出ている場合は 既にインストールされていますのでそれを使えばよいかと思います repng2jpegのバイナリは libjpeg/libpng等を外部ライブラリで扱うものと プログラム内で静的リンクしているものを用意してありますので 環境によって選択してください dynamic:OK の場合は dynamic版を(容量的に小さいので) dynamic:NG standard:OK の場合は standard版を使えばよいかと思います これらのバイナリにはパーミッション755等 実行権限を与えてください なおサーバにFTPでアップロードする際にはバイナリモード(or自動)にします アスキーモードは正常に動かない原因となります repng2jpeg が使えそうな場合 check.cgi と同じディレクトリに repng2jpeg をアップロードすると > ./repng2jpeg Found ---- ファイルが存在するかどうか > ./repng2jpeg Permisson:OK ---- 実行権限が与えられているか > ./repng2jpeg Exec:OK ---- 実際に実行できたか と実際にコマンドを実行して動作を判定します ExecにOKが出ている場合はほぼ使えると思います Permission:OK で Exec:NGの場合は違うOSのバイナリをアップロードしている可能性があります perlmagick http://www.imagemagick.org/www/perl.html netpbm http://netpbm.sourceforge.net/ repng2jpeg http://sugachan.dip.jp/download/komono.php ※このライブラリを使った画像掲示板等を配布する場合 CGI結果のHTML等に resize.pl に関しての著作権表示の義務はありません。 但し resize.pl の性質上配布アーカイブにはライブラリそのものは含めないでください。 readme あたりに resize.pl の配布ページのURLを書いていただければ結構です。 なお現在は以下のURLになっています http://sugachan.dip.jp/download/komono.php#resize ライブラリの読み込み方は jcode.pl など同じように require './resize.pl'; と書くだけです。以下のような関数があります。 #--------------------------------------------- imgbbs::imgresize(src,dst,dstX,dstY,JpegQuality,Flag) src(input) -> JPEG/GIF/PNG 自動判別 dst(output) -> JPEG固定 dstX -> 作成後の幅(px) dstY -> 作成後の高さ(px) JpegQuality -> JPEG品質値(1-100) *省略時75 Flag -> 作成後の方がサイズが大きい場合自動削除=1 *省略時0 サムネイルを作成します imgbbs::imgresize 自体は dst のファイルを作成した場合1, 作成されなかった場合は0を返します ----例1 if(imgbbs::imgresize("./1.png","./2.jpg",200,100,30,0)){ print "./2.jpg 作成しました"; }else{ print "./2.jpg 作成しませんでした"; } ----例2 imgbbs::imgresize("./1.png","./2.jpg",200,100,30,0); if(-e "./2.jpg"){ print "./2.jpg 作成されました"; } #--------------------------------------------- imgbbs::note() 引数はありません resize.pl.magick(2003/10/24) のようにどのresize.plを使っているかを返します -----例 print imgbbs::note(); #--------------------------------------------- resize.pl (c) 2004 SUGA All rights reserved.