웹마스터 팁

(GD) 이미지 대칭 축소 함수

2002.11.08 11:52

민이

안녕하세요, 희민닷컴 ( http://www.HeeMin.com ) 의 민이입니다.

GD를 이용해 썸네일을 만들어 봅니다.
다들 아시겠지만 올라온 것이 없는 것 같아서요.

단순히 <img> 태그에서 width, height 조절로도 이미지를 줄일 수 있지만 어느정도의 이미지 깨짐을 감안 해야 하고, 원본이 큰 이미지일 경우 갤러리 등에서 표현할 때는 페이지 로딩시 꽤 시간이 걸리게 되죠.

따라서 갤러리 등에서 썸네일도 같이 등록해야 하는 번거로움이 있습니다.
이럴 때는 원본만 올리면 썸네일을 생성시켜 주면 사용자의 번거로움을 피할 수 있습니다.

이 썸네일 만드는 부분에 대한 함수입니다.
사용법은 아래와 같습니다.

사용법:
JPGMakeThum (썸네일의 최대 폭, 썸네일의 최대 높이, 소스화일의 경로, 썸네일을 생성할 경로-이름포함);

예제 :
JPGMakeThum (150,40,"images/test.jpg","images/test_thum.jpg");

주의사항 :
이 함수는 썸네일을 기존이미지의 가로세로폭에 대칭해서 만들어 줍니다.
그러니까 150, 40 을 넣었다고 해서 150x40짜리 이미지가 만들어 지는 것이 아니라,
150x40 영역 내에 기존의 이미지를 대칭 축소한 이미지를 만드는 것이지요.
(원본의 가로 폭의 비가 썸네일 보다 길 경우, 150x(40이하의 정수) 값의 이미지가 만들어지죠.

썸네일과 원본의 가로세로 비가 같다면 넣은 값 그대로의 썸네일이 만들어 지겠지만요.

이 소스는 희민닷컴( www.HeeMin.com ) > LoveLove > 일기장 의 썸네일 생성에 쓰였습니다. 미리보기는 그 것을 보면 될 듯...


function JPGMakeThum($maxX,$maxY,$src_file, $tag_file) { // 썸네일 만들기 : 제작 노경민

$src_img=ImageCreateFromjpeg($src_file); //원본
$sx=imagesx($src_img);
$sy=imagesy($src_img);

if ($sx>$maxX || $sy>$maxY) { // 이미지 대칭 축소를 위한 계산
        if ($sx>$sy) {
                $targ_Y=ceil(($sy*$maxX)/$sx);
                $targ_X=$maxX;
        } else {
                $targ_X=ceil(($sx*$maxY)/$sy);
                $targ_Y=$maxY;
        }
} else {
        $targ_Y=$sy;
        $targ_X=$sx;
}
$dst_img=ImageCreateTrueColor($targ_X, $targ_Y);//빈이미지를 만들어주고
ImageCopyResized($dst_img,$src_img,0,0,0,0,$targ_X,$targ_Y,$sx,$sy); //줄여서 그려준다

Imagejpeg($dst_img,$tag_file,80); //화일로 출력
chmod($tag_file,0707); // 파일 퍼미션 변경
ImageDestroy($dst_img);//메모리 비워주기
ImageDestroy($src_img);//메모리 비워주기
}

P.S 죄송합니다. 한참만에 다시 보니, 뒷부분이 빠진채였네요.. 죄송죄송...
제목 글쓴이 날짜
Freechal.com 과 같은 형태의 아바타를 만들자. [6] 다솜아빠 2002.10.31
제로보드로 유료 사이트 만들기 (회원 db 수정) 수정 #1 [7] file 한꼬마 2002.10.31
정규표현식 쓰지 않고 자동링크하기!! 한글주소까지 문제없슴돠~~!! [6] 우트라 2002.11.05
제로보드로 유료 사이트 만들기 (폼만들기) [3] 한꼬마 2002.11.06
제로보드로 유료 사이트 만들기 (결제 정보 저장) [1] 한꼬마 2002.11.06
(GD) 이미지 대칭 축소 함수 [5] 민이 2002.11.08
초보의 초보를위한 강의 PHP를 활용한 페이지 암호걸기 #1 [9] file 아이쿠 2002.11.13
초보의 초보를위한 강의 PHP를 활용한 페이지 암호걸기 #2 [8] 아이쿠 2002.11.13
초보의 초보를위한 강의 PHP를 활용한 페이지 암호걸기 #3 [10] 아이쿠 2002.11.15
세계 인구 구하기~; [23] AT4u 2002.11.16
[My생각] 쿠키와 보안에 대한 재미있는 생각!! [1] 박용구 2002.11.18
모닝샵 이용해서 쇼핑몰 만들기 (서론) [5] 한꼬마 2002.11.19
모닝샵 이용해서 쇼핑몰 만들기 (설치에서 쇼핑몰 환경 설정) [7] file 한꼬마 2002.11.20
모닝샵을 이용하여 쇼핑몰 만들기 (카테고리) [1] file 한꼬마 2002.11.21
모닝샵 이용해서 쇼핑몰 만들기 (제품 관리) [4] file 한꼬마 2002.11.21
모닝샵 이용해서 쇼핑몰 만들기 (웹페이지 만들기1) [8] file 한꼬마 2002.11.22
모닝샵 이용해서 쇼핑몰 만들기 (상품 목록) file 한꼬마 2002.11.22
모닝샵 이용해서 쇼핑몰 만들기 (화면 꾸미기 1) [4] file 한꼬마 2002.11.24
휴대폰 결재 설치 1 (다날 휴대폰 결재) 한꼬마 2002.11.24
휴대폰 결재 설치 및 테스터 [3] file 한꼬마 2002.11.24