記事No | : 3087 |
投稿日 | : 2008/03/05(Wed) 18:02:10 |
タイトル | : ブログ風日記のサムネイル表示 |
ID情報 | : x1312 |
投稿者 | : うしわか |
URL | : http://www.asahi-sinbun.com/test/sato/diary/diary.cgi |
「KENTと作るワンランク上のPerl/CGIプログラミング」に付属の、「ブログ風日記」を利用しています。
いろいろと挑戦してはいるのですが、画像表示をサムネイル表示方法があればご教示願えないかと書込させていただきました。
ちなみにこのCGIは初めから著作権表示がありません。削除したわけではありません。
記事No | : 3100 |
投稿日 | : 2008/03/06(Thu) 17:24:43 |
タイトル | : Re: ブログ風日記のサムネイル表示 |
ID情報 | : pachira |
投稿者 | : pachira |
URL | : http://www5e.biglobe.ne.jp/~pachira/ |
> 「KENTと作るワンランク上のPerl/CGIプログラミング」に付属の、「ブログ風日記」を利用しています。
> いろいろと挑戦してはいるのですが、画像表示をサムネイル表示方法があればご教示願えないかと書込させていただきました。
> ちなみにこのCGIは初めから著作権表示がありません。削除したわけではありません。
情報提供だけになりますが…
多くの方は、外部ライブラリを利用するようです。
http://www.google.co.jp/search?source=ig&hl=ja&rlz=&q=resize+pl&btnG=Google+%E6%A4%9C%E7%B4%A2&meta=lr%3Dlang_ja
記事No | : 3120 |
投稿日 | : 2008/03/07(Fri) 16:34:16 |
タイトル | : Re^2: ブログ風日記のサムネイル表示 |
ID情報 | : x1312 |
投稿者 | : うしわか |
URL | : http://www.asahi-sinbun.com/test/sato/diary/diary.cgi |
> > 「KENTと作るワンランク上のPerl/CGIプログラミング」に付属の、「ブログ風日記」を利用しています。
> > いろいろと挑戦してはいるのですが、画像表示をサムネイル表示方法があればご教示願えないかと書込させていただきました。
> > ちなみにこのCGIは初めから著作権表示がありません。削除したわけではありません。
>
> 情報提供だけになりますが…
> 多くの方は、外部ライブラリを利用するようです。
> http://www.google.co.jp/search?source=ig&hl=ja&rlz=&q=resize+pl&btnG=Google+%E6%A4%9C%E7%B4%A2&meta=lr%3Dlang_ja
ありがとうございます。resize.plで挑戦してみます。
記事No | : 3134 |
投稿日 | : 2008/03/09(Sun) 10:46:01 |
タイトル | : Re^3: ブログ風日記のサムネイル表示 |
ID情報 | : x1312 |
投稿者 | : うしわか |
自己レスです。その後、いろいろやってみてサムネイル表示が
できましたので手順を書き込みさせていただきます。
今回はhttp://sugachan.dip.jp/obsolete/ext/
から、resize.plを利用させてもらいました。
resize.plをlibのフォルダに追加
●init.cgiの設定
# 外部ファイル【サーバパス】
$jcode = './lib/jcode.pl';
$cgilib = './lib/cgi-lib.pl';
$upload = './lib/upload.pl';
$regkeypl = './lib/registkey.pl';
$resizepl ='./lib/resize.pl';###★追加
50行あたりに
###★追加ここから
#サムネイル関連
$smsize_w =200;# サムネイル画像幅の最大表示(縮小)
$smsize_h =200;# サムネイル画像縦の最大表示(縮小)
$qualityk = 80; # サムネイル画質値(1-100)
###★追加ここまで
●upload.pl
chmod(0666, $imgfile);
my $imgfileS = "$upldir/s$name$tail";##★追加
# 画像サイズ取得
my ($w,$h);
if ($tail eq ".jpg") {
($w,$h) = &j_size($imgfile);
} elsif ($tail eq ".gif") {
($w,$h) = &g_size($imgfile);
} elsif ($tail eq ".png") {
($w,$h) = &p_size($imgfile);
}
####★追加ここから
# サムネイルサイズ計算
if ($w > $smsize_w || $h > $smsize_h) {
my $w2 = $smsize_w / $w;
my $h2 = $smsize_h / $h;
my $key;
if ($w2 < $h2) { $key = $w2; } else { $key = $h2; }
$ws = int ($w * $key) || 1;
$hs = int ($h * $key) || 1;
}
imgbbs::imgresize("$imgfile","$imgfileS",$ws,$hs,$qualityk,0);
####★追加ここまで
return ($tail, $w, $h);
}
●admin.cgi
105行あたり
# 画像アップ
my ($ex,$w,$h);
if ($in{'upfile'}) {
require $resizepl;##★追加
require $upload;
($ex,$w,$h) = &upload($num);
}
390行あたり
# 画像アップ
my ($ex2,$w2,$h2);
if ($in{'upfile'}) {
require $resizepl;##★追加
require $upload;
($ex2,$w2,$h2) = &upload($in{'no'});
}
●diary.cgi
270行あたり
# 画像
if ($ex) {my ($w,$h) = &resize($w,$h);
$tmp =~ s|!main_img!|<a href="$uplurl/$no$ex" target="_blank"><img src="$uplurl/s$no$ex" align="$img_align" hspace="6" width="$w" height="$h" alt="" border="0"></a>|;##★修正
} else {
$tmp =~ s/!main_img!//;
}
print $tmp;
}