(現在 過去ログ4 を表示中)

HOME HELP 新着記事 トピック表示 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■7764 / inTopicNo.1)  ImageMagickでサムネイル表示
  
□投稿者/ rexer -(2003/09/20(Sat) 13:43:55)
    はじめまして。

    現在、自宅サーバ上でUPP-BOARDを使わせて頂いております。
    回線速度の登りが遅いため、画像掲示板で一気に画像を読み込まれると、
    表示に非常に時間が掛かってしまうため、サムネイル画像
    (実際に縮小し保存した画像)を表示するようにしたいと
    思っております。

    // ImageMagick(PerlMagick)は自宅サーバにはインストール済みで、
    // CGIから画像のリサイズが出来る事を確認しております。

    設定部分に
    -----------------------
    $is_dir="./thumb"; #サムネイルを保存するディレクトリ
    ------------------------
    を書き加え、

    http://www.i-say.net/cgi/tips_view.php3?id=11
    このTIPSを利用して、632行目の
    chmod(0666,"$i_dir/$filename");
    の後に

    ---------------------------------------
    ####サムネイル作成####
    use Image::Magick;
    $img = Image::Magick->new;
    $img->Read("$i_dir/$filename");

    #画像サイズ取得
    $width =$img->get('width');
    $height =$img->get('height');

    #サムネイル保存(横幅固定)
    $img->Scale(width=>$W,height=>($W/$width)*$height);
    $img->Write("$is_dir/$filename");
    chmod(0666,"$is_dir/$filename");

    -----------------------------------
    と書き、投稿時に横幅を固定したサムネイル画像が保存される所までは出来ています。
    以下の事を実現するには、どうすればいいでしょうか?

    ・「画像表示形式:250×250以下に縮小」の時に、このサムネイル画像を表示
    ・記事削除時に、サムネイル画像も一緒に削除
    ・画像の縦又は横幅が
     $H = 250;# 縮小モード時imgの最高縦幅
     $W = 250;# 〃 横幅
     以上になった場合にどちらか長い方を上記の設定内になるようにサムネイルを作成

    よろしくお願いいたします。

引用返信 [メール受信/OFF] 削除キー/
■7768 / inTopicNo.2)  Re[1]: ImageMagickでサムネイル表示
□投稿者/ りゅういち -(2003/09/20(Sat) 22:52:08)
http://www.cj-c.com/
    No7764に返信(rexerさんの記事)
    > 以下の事を実現するには、どうすればいいでしょうか?
    > > ・「画像表示形式:250×250以下に縮小」の時に、このサムネイル画像を表示

    ファイル名が一緒のようなので、sub size{〜}
    のところの最後に $i_Url=$is_dir; と入れればOKかも。

    > ・記事削除時に、サムネイル画像も一緒に削除

    unlink("$i_dir/$file"); というのを探して隣に unlink("$is_dir/$file");
    と入れてください。エラーのところと、親記事保持数超過記事の処理の部分
    にもあります。

    > ・画像の縦又は横幅が
    >  $H = 250;# 縮小モード時imgの最高縦幅
    >  $W = 250;# 〃 横幅
    >  以上になった場合にどちらか長い方を上記の設定内になるようにサムネイルを作成

    $Wn=$W; $Hn=$H; $Cg=1;
    if($IW > $Wn){$IK=$Wn*$IH;$kH=int($IK/$IW);$kW=$Wn;$Cg=0;}
    if($Cg && $IH > $Hn){$IK=$Hn*$IW;$kW=int($IK/$IH);$kH=$Hn;$Cg=0;}
    elsif($Cg==0 && $kH > $Hn){$IK=$Hn*$kW;$kW=int($IK/$kH);$kH=$Hn;}
    でできます。$IW $IH は実際の大きさをいれて処理すると $kW $kH に
    縮小サイズがだされます。
引用返信 [メール受信/OFF] 削除キー/
■7773 / inTopicNo.3)  Re[2]: ImageMagickでサムネイル表示
□投稿者/ rexer -(2003/09/21(Sun) 19:45:15)
    返答ありがとうございました。
    実際に書き換えている際に、いくつかの点で
    違いがありましたので、報告致します。

    No7768に返信(りゅういちさんの記事)
    > ■No7764に返信(rexerさんの記事)
    >>以下の事を実現するには、どうすればいいでしょうか?
    >>> ・「画像表示形式:250×250以下に縮小」の時に、このサムネイル画像を表示
    >
    > ファイル名が一緒のようなので、sub size{〜}
    > のところの最後に $i_Url=$is_dir; と入れればOKかも。

    $i_Url=$is_dir;
    だけですと、リンク先もサムネイル画像になってしまいましたので、
    }
    の直前に、
    $original=$i_Url;
    $i_Url=$is_dir;
    を挿入

    if($fimg eq img && $FORM{'min'} == 0){&size;}
    の行を
    if($fimg eq img && $FORM{'min'} == 0){&size;}else{$original=$i_Url;}
    に変更

    表示処理の所で<a href="$i_dir/$ico" となっている所を <a href="$original/$ico" に変更

    >>・記事削除時に、サムネイル画像も一緒に削除
    >
    > unlink("$i_dir/$file"); というのを探して隣に unlink("$is_dir/$file");
    > と入れてください。エラーのところと、親記事保持数超過記事の処理の部分
    > にもあります。
    unlinkで検索した所、他に、unlink("$i_dir/$i");と言うのもありましたが、
    この後にも、unlink("$is_dir/$i");といれる事で、サムネイル画像も削除する事が出来るようになりました。

    >>・画像の縦又は横幅が
    >> $H = 250;# 縮小モード時imgの最高縦幅
    >> $W = 250;# 〃 横幅
    >> 以上になった場合にどちらか長い方を上記の設定内になるようにサムネイルを作成

    サムネイル画像の幅も、どちらか大きい方を最大幅にして縮小出来るようになり、
    表示が軽くなり、大変助かりました。
    ありがとうございました。
解決済み!
引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Pass/

HOME HELP 新着記事 トピック表示 検索 過去ログ

- Child Tree -