웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
Thumbnail 생성하기 - 수정^^;
2003.07.11 01:13
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); // 출력한 그림으로 주소 이동
?>
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); // 출력한 그림으로 주소 이동
?>
댓글 9
제목 | 글쓴이 | 날짜 |
---|---|---|
[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]
![]() | 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 |