본문 바로가기

스크립트/그누보드 관련

[영카트]제품 리사이징 width기준으로 height 자유롭게

[영카트]제품 리사이징 width기준으로 height 자유롭게

------------------------------------------- lib 소스 ---------------------------------------------


상품 이미지를 등록하게 되면,
쇼핑몰 설정페이지에서 지정한 썸네일 크기
소(120x120) 중(240x240) 등~ 그렇게 지정된 크기대로 가로세로가 fix되어서
썸네일이 생성됩니다.

일반 사진이 정사각형은 별로 없지요. 직사각형일텐데
그 비율에 맞게끔 썸네일을 생성하게 하는 방법입니다.


영카트/adm/shop_admin/itemformupdate.php

파일을 보시면,
// 이미지(대)만 업로드하고 자동생성 체크일 경우 이미지(중,소) 자동생성
if ($createimage && $_FILES[it_limg1][name])
.....

이런 부분이 있습니다. 찾으셔서 그 안에보면
// gd 버전에 따라
  if (function_exists("imagecopyresampled")) {
            // 이미지(소) 생성
            $dst = imagecreatetruecolor($default[de_simg_width], $default[de_simg_height]);
            imagecopyresampled($dst, $src, 0, 0, 0, 0, $default[de_simg_width], $default[de_simg_height], $size[0], $size[1]);
        } else {
            // 이미지(소) 생성
            $dst = imagecreate($default[de_simg_width], $default[de_simg_height]);
            imagecopyresized($dst, $src, 0, 0, 0, 0, $default[de_simg_width], $default[de_simg_height], $size[0], $size[1]);
        }

이 부분에서 썸네일이 생성되게 됩니다.
주석 밑 if문 바로 위에다가 

  $resize_rule = $default[de_simg_width] / $size[0]; //비율을 구한다.
  $default[de_simg_height] = $resize_rule * $size[1];

이 두줄만 추가해 주시면 됩니다.

size[0] 과 size[1]은 이미 그 위에서 처리가 되었더군요.
비율만 조율해주면 되는것이었습니다. ㅠㅠ


저건 작은 이미지에 대용한것이구요. 
이미지에 넣게 되면 중이미지 처리 if문 바로 위에 

  $resize_rule = $default[de_mimg_width] / $size[0]; //비율을 구한다. 
  $default[de_mimg_height] = $resize_rule * $size[1]; 

이부분을 넣어주심 됩니다. de_simg_width 를 de_mimg_width로 바꾼거뿐이죠~



---------------------------------------------------------------- 아래는 출력 ------------------------

lib/shop.lib.php 를 

    if (file_exists($full_img) && $img) 
    { 
        if (!$width) 
        { 
            $size = getimagesize($full_img); 
            $width = $size[0]; 
            $height = $size[1]; 
        } 
        //$str = "<img id='$img' src='$g4[url]/data/item/$img' width='$width' height='$height' border='0'>"; 
        $str = "<img id='$img' src='$g4[url]/data/item/$img' width='$width' border='0'>"; 
    } 
    else 
    { 
        $str = "<img id='$img' src='$g4[shop_img_url]/no_image.gif' border='0' "; 
        if ($width) 
            //$str .= "width='$width' height='$height'"; 
            $str .= "width='$width'"; 
        else 
            //$str .= "width='$default[de_mimg_width]' height='$default[de_mimg_height]'"; 
            $str .= "width='$default[de_mimg_width]'"; 
        $str .= ">"; 
    } 

이렇게 수정해 봤습니다.