웹마스터 팁
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
제목 | 글쓴이 | 날짜 |
---|---|---|
동적으로 Extensions(library) 로딩하기 | impre | 2003.09.20 |
include 할시에 주의사항..(경로설정관련) [10] | 피너츠 | 2003.09.14 |
지정한만큼 암호화/해독 하기 [24] | 뒹굴리스트 | 2003.09.10 |
모든파일을 리스트로 만들기; [10] | 플로렐라 | 2003.09.10 |
군대간 친구 남은날짜 구하기 2(복무기간 단축에 따른 수정) [8] | 신민경 | 2003.09.02 |
자료실에 쓸만한 자료용량 환산 [7] | 한승진 | 2003.09.01 |
php 랜덤 이미지 디렉토리 검색으로 편하게.. [3] | 꺼노 | 2003.08.28 |
웹디자이너와 프로그래머가 사이 좋게 코딩하는 방법 [50] | 마이템플릿 | 2003.08.13 |
개판 오분전 정규식(1) | 미친개 | 2003.08.07 |
개판 오분전 정규식(2) [5] | 미친개 | 2003.08.07 |
개판 오분전 정규식(3) [2] | 미친개 | 2003.08.07 |
개판 오분전 정규식(4) | 미친개 | 2003.08.07 |
$i++ !== $i += 1 [14] | 플로렐라 | 2003.08.04 |
체널을 응용해서 tmain.php?tdb=test&db=src 식으로 쓰기 [12] | 9000㎒ | 2003.08.01 |
제로보드 + MSN 메신저 (작성글에 리플이나 코멘트가 달리면 MSN으로 알려준다?)
[18]
![]() | HungryMania | 2003.08.01 |
스킨 시스템 사용하기 [2] | 김규백 | 2003.07.25 |
다른 사이트에 있는 파일 읽어오기 [50] | 김규백 | 2003.07.25 |
초간단 php 랜덤 이미지 및 랜덤 배경이미지 소스 [6] | 거금도 | 2003.07.24 |
'와 "의 속도 차이?! [6] | holies | 2003.07.12 |
Thumbnail 생성하기 - 수정^^; [9] | holies | 2003.07.11 |