웹마스터 팁

Thumbnail 생성하기 - 수정^^;

2003.07.11 01:13

holies

Thumbnail 만드는 방법이 밑에 있긴 한데 여러 툴을 사용하더군요.
GD만 사용해서 만드는 방법입니다.
상황에 맞게 변경해 쓰세요. 분석하기 어렵지 않을 겁니다.
혹시 이해가 안가시면 코멘트 남겨주세요. 주석 달아드릴께요. 지금은 귀찮아서... ^^;
생성된 그림은 JPG이며 크기가 고정되어 있습니다.

<?php
// 사용 예 : thumbnail.php?file=a.gif&file2=a.jpg
define('WIDTH', 100); // 가로 최대 크기
define('HEIGHT', 100); // 세로 최대 크기
define('BGCOLOR', 0xE0CCBB); // 크기 조정 후 생기는 여백 색
extract($_GET); // GET 방식으로 전달 받은 변수 풀기
$file_image = @getimagesize($file); // $file의 가로, 세로 크기 및 그림 종류 구하기
switch($file_image[2]) { // 그림 종류에 따라
       case 1: $src = imagecreatefromgif($file); break; // GIF일때 파일 열기
       case 2: $src = imagecreatefromjpeg($file); break; // JPG일때 파일 열기
       case 3: $src = imagecreatefrompng($file); break; // PNG일때 파일 열기
       default: exit('그림이 아닙니다.'); // 암것두 아닐때 -_-;
}
if($file_image[0] > $file_image[1]) { // 100*100에 맞추기 위해 가로와 세로 중에 더 긴게 무엇인지 판별
        // 가로가 더 길면
        $width = WIDTH; // 가로는 100으로 고정
        $height = $file_image[1] * WIDTH / $file_image[0]; // 세로는 비율에 맞게 계산
} else {
        // 세로가 더 길면
        $width = $file_image[0] * WIDTH / $file_image[1]; // 가로를 비율에 맞게 계산
        $height = HEIGHT; // 세로는 100으로 고정
}
$trg = imagecreatetruecolor(WIDTH, HEIGHT); // 100*100의 빈 그림 생성
imagefill($trg, 0, 0, BGCOLOR); // 생성한 그림을 BGCOLOR라는 색으로 채움.
imagecopyresampled($trg, $src, WIDTH - $width >> 1, HEIGHT - $height >> 1, 0, 0, $width, $height, $file_image[0], $file_image[1]); // 처음에 연 $src라는 그림을 방금 생성한 $trg에 그림 크기를 줄여서 복사
imagedestroy($src); // 처음에 연 $src 메모리에서 닫기
imagejpeg($trg, $file2, 50); // $trg를 $file2라는 이름의 파일로 출력, 50은 JPG 화질 (0~100)
imagedestroy($trg); // 나중에 연 $trg 메모리에서 닫기
header('Location: '.$file2); // 출력한 그림으로 주소 이동
?>
제목 글쓴이 날짜
[OsE=] 최단 거리... [6] OsE= 2002.03.02
[OsE=] IF 대신... [6] OsE= 2002.03.02
[Yuki-H.] 이미지 크기가 일정 픽셀 이상이면 축소하여... [8] Yuki-H. 2002.03.04
많은것을 파일하나로 처리하잣!! [5] 실버 2002.03.05
2번째~~!! DATE값 받아놓기 &상대방 아이피 알아내기~ [7] 실버 2002.03.07
요일을 한글로 표시 [5] 페리스 2002.03.10
반복문을 한번만 사용한 구구단 [2] 페리스 2002.03.10
php를 리눅스쉘상 에서도 사용하자? [5] 실버 2002.03.10
유용한 함수 - array_reverse 리들 2002.03.10
가변적 변수 할당하는 방법 (t1=1; t2=2; t=t.rand(1,2);) [1] 차카게살자 2002.03.11
[추천 팁] index key 값을 갖는array에서 value에 의한 key값 반환 [1] 차카게살자 2002.03.11
include를 이용한 다음넷 홈페이지 꾸미기1 [10] ZipShin 2002.03.12
include를 이용한 다음넷 홈페이지 꾸미기2(그림 첨부) [4] file ZipShin 2002.03.12
TheMics의 예제와 함께하는 PHP기초(上) [1] TheMics 2002.03.14
[씽크식 PHP] 초심자들이 많이 겪는 실수.. [7] [ζ]씽크 2002.03.16
echo 문 대신... [5] TryZ 2002.03.17
[추천 팁] 방문자의 os와 browser체크 함수.... [3] navyism 2002.03.18
[추천 팁] setcookie()사용시 header어쩌구 하는 에러날때.... [1] 하얀바다 2002.03.19
[추천 팁] [씽크식 PHP] PHP에대해 아무 지식이 없는 사람이 오해하는것. [3] [ζ]씽크 2002.03.23
[씽크식 PHP] 글자 하나씩 때어놓기.. (한글 자르기 포함) [1] John Sync. 2002.03.26