KENT-WEB サポートコーナー 過去ログ [ 0216 ]


記事No: 3087
投稿日: 2008/03/05(Wed) 18:02:10
タイトルブログ風日記のサムネイル表示
ID情報: x1312
投稿者: うしわか
URLhttp://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
URLhttp://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
投稿者: うしわか
URLhttp://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;
}



[検索ページ]