업로드한 파일이나 이미 저장된 파일을 축소해서 썸네일을 생성하는 방법을 요약하면
1. 원본이미지를 불러온다
2. 새로이 생성될 이미지가 들어갈 집을 만든다
3. 만들어진 집에 원본이미지를 축소하여 붙여 넣는다
4. 저장한다.
예를들어 400*200 인 origin.gif 를 200*100 의 copy.gif 로 만드는 과정을 보자
// 원본 이미지 load
$path = "/images/origin.gif";
$o_img = imagecreatefromgif($path);
// 썸네일 이미지가 들어갈 집 만들기
$n_img = imagecreatetruecolor(200,100);
// 생성한 집에 원본이미지를 축소해서 넣기
imagecopyresampled($n_img,$o_img,0,0,0,0,200,100,400,200);
// 이미지 저장하기
$n_path = "/images/copy.gif";
imagegif($n_img, $n_path);
// 썸네일 생성
imagecopyresampled($n_img, $o_img, 0,0,$offsetX,$offsetY,$w,$h,$cropW,$cropH);
각각의 파라미터들은 썸네일이 될 이미지, 원본 이미지, x좌표 기준점, y좌표 기준점, x좌표, y좌표, 축소할 길이, 축소할 세로길이, 원본에서 잘라낼 가로길이, 원본에서 잘라낼 세로길이
출처) http://raonbnp.blog.me/130142873249
아래는 잘 정리 된 함수
-
<?
-
// 원본 이미지 -> 썸네일로 만드는 함수
-
function thumbnail($file, $save_filename, $max_width, $max_height)
-
{
-
-
$img_width = $img_info[0];
-
$img_height = $img_info[1];
-
-
if(($img_width/$max_width) == ($img_height/$max_height))
-
{//원본과 썸네일의 가로세로비율이 같은경우
-
$dst_width=$max_width;
-
$dst_height=$max_height;
-
}
-
-
elseif(($img_width/$max_width) < ($img_height/$max_height))
-
{//세로에 기준을 둔경우
-
$dst_width=$max_height*($img_width/$img_height);
-
$dst_height=$max_height;
-
}
-
-
else
-
{//가로에 기준을 둔경우
-
$dst_width=$max_width;
-
$dst_height=$max_width*($img_height/$img_width);
-
}
-
-
-
-
ImageCopyResized($dst_img, $src_img, 0, 0, 0, 0, $dst_width, $dst_height, $img_width, $img_height); //타겟이미지에 원하는 사이즈의 이미지를 저장합니다
-
-
}
-
-
?>
-
-
<?
-
// 원본 이미지 파일
-
$srcFile = "./upfiles_adbrain/20055/10/img/5.jpg";
-
-
// 타겟 이미지 파일
-
$sumFile = "./upfiles_adbrain/20055/10/sub/9.jpg";
-
-
thumbnail($srcFile,$sumFile,"97","72");
-
?>
출처) http://blog.naver.com/wordless?Redirect=Log&logNo=120018113204
'IT 실무 > 웹프로그래밍' 카테고리의 다른 글
[Jquery Mobile] $.mobile.changePage - 페이지 이동 메소드 (0) | 2012.11.16 |
---|---|
[Jquery Mobile] ajax를 쓰지 않고 페이징 처리하기 (0) | 2012.11.16 |
[Jquery] 주요 함수 레퍼런스와 깔끔한 예제들 (0) | 2012.11.10 |
[HTML/CSS] RGB 색상표 가장 쓰기 편한곳 (0) | 2012.11.10 |
[HTML/CSS] overflow된 텍스트 자르기 (0) | 2012.11.10 |
댓글