// 호출시
put_gdimage('원본파일명', 생성가로, 생성세로, '저장될파일명');
// 정상생성여부 확인시 : 정상생성시 1을 리턴, 이외는 실패
// gd 이미지 생성
/* $img_name = 생성에 사용될 원본 파일명, $width = 생성이미지 가로크기, $height = 생성이미지 세로크기, $save_name = 저장될 파일명 */
function put_gdimage($img_name, $width, $height, $save_name){
// GD 버젼체크
$gd = gd_info();
$gdver = substr(preg_replace("/[^0-9]/", "", $gd['GD Version']), 0, 1);
if(!$gdver) return "GD 버젼체크 실패거나 GD 버젼이 1 미만입니다.";
$srcname = "../upload/goods/".$img_name;
$timg = getimagesize($srcname);
if($timg[2] != 1 && $timg[2] != 2 && $timg[2] != 3) return "확장자가 jp(e)g/png/gif 가 아닙니다.";
// jpg, jpeg
if($timg[2] == 2){
$cfile = imagecreatefromjpeg($srcname);
// gd 버전별로
if($gdver == 2){
$dest = imagecreatetruecolor($width, $height);
imagecopyresampled($dest, $cfile, 0, 0, 0, 0, $width, $height, $timg[0], $timg[1]);
}else{
$dest = imagecreate($width, $height);
imagecopyresized($dest, $cfile, 0, 0, 0, 0, $width, $height, $timg[0], $timg[1]);
}
imagejpeg($dest, "../upload/goods/".$save_name, 90);
// png
}else if($timg[2] == 3){
$cfile = imagecreatefrompng($srcname);
if($gdver == 2){
$dest = imagecreatetruecolor($width, $height);
imagecopyresampled($dest, $cfile, 0, 0, 0, 0, $width, $height, $timg[0], $timg[1]);
}else{
$dest = imagecreate($width, $height);
imagecopyresized($dest, $cfile, 0, 0, 0, 0, $width, $height, $timg[0], $timg[1]);
}
imagepng($dest, "../upload/goods/".$save_name, 90);
// gif
}else if($timg[2] == 1){
$cfile = imagecreatefromgif($srcname);
if($gdver == 2){
$dest = imagecreatetruecolor($width, $height);
imagecopyresampled($dest, $cfile, 0, 0, 0, 0, $width, $height, $timg[0], $timg[1]);
}else{
$dest = imagecreate($width, $height);
imagecopyresized($dest, $cfile, 0, 0, 0, 0, $width, $height, $timg[0], $timg[1]);
}
imagegif($dest, "../upload/goods/".$save_name, 90);
}
// 메모리에 있는 그림 삭제
imagedestroy($dest);
return 1;
}
출처 : http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=45236&page=1
'IT_Programming > PHP' 카테고리의 다른 글
register_global 설정시 변수 받는법 (0) | 2007.09.30 |
---|---|
프레임과 Javascript를 사용해서 서버의 부하 최소화 (1) | 2007.09.30 |
가변적인 MYSQL 입력 자동화하기 (0) | 2007.09.30 |
ADO 작업을 보다 쉽게 도와주는 함수 (0) | 2007.09.30 |
UTF-8 일 때 한글 자르는 방법 (0) | 2007.09.30 |