[Tep-j-general] Re: サムネイルの縦横比を保ったまま表示したい

Back to archive index

Masaki Komagata m-kom****@wisek*****
2003年 12月 3日 (水) 20:33:58 JST


駒形です。

> 佐藤@キャプテン%自己レスです。
> 
> > catalog/includes/functions/html_output.php にある tep_image()
> > で画像サイズのリサイズ処理をしていますので、そこにパッチを適用
> > すればいけるでしょう。
> 
> こんな感じにすればどうでしょう?
> 
>     if (CONFIG_CALCULATE_IMAGE_SIZE == 'true') {
>       if ($image_size = @getimagesize($src)) {
>         if (empty($width) && tep_not_null($height)) {
>           $ratio = $height / $image_size[1];
>           $width = $image_size[0] * $ratio;
>         } elseif (tep_not_null($width) && empty($height)) {
>           $ratio = $width / $image_size[0];
>           $height = $image_size[1] * $ratio;
>         } elseif (empty($width) && empty($height)) {
>           $width = $image_size[0];
>           $height = $image_size[1];
>         } elseif ($image_size[0] > $image_size[1]) {
>         // 画像が横長の場合
>           $ratio = $width / $image_size[0];
>           $oheight = $height;
>           $height = $image_size[1] * $ratio;
>           if ($oheight > $height) {
>             $vspace = ($oheight - $height)/2;
>             $image .= ' vspace="' . intval($vspace) . '"';
>           }
>         } else {
>         // 画像が縦長の場合
>           $ratio = $height / $image_size[1];
>           $owidth = $width;
>           $width = $image_size[0] * $ratio;
>           if ($owidth > $width) {
>             $hspace = ($owidth - $width)/2;
>             $image .= ' hspace="' . intval($hspace) . '"';
>           }
>         }
>       } elseif (IMAGE_REQUIRED == 'false') {
>         return false;
>       }
>     } 

素晴しいです。
その部分をすでに自分で変更済みだったのですが
vspace, hspaceを使うのは気づきませんでした。
こちらの方がスマートですね。
ありがとうございます。

/**
 * 駒形 真幸 <m-kom****@wisek*****>
 * 株式会社ワイズノット
 * 150-0013 渋谷区恵比寿1-25-1 NAGAHAMAビル5F
 * Tel: 03-5791-5341  Fax: 03-5791-5342
 * http://www.wiseknot.co.jp
 */




Tep-j-general メーリングリストの案内
Back to archive index