GD이용 작은이미지 만드는 클래스 입니다.
컨텐츠 정보
- 18,155 조회
- 4 추천
- 목록
본문
idhacker
http://juns.maru.net
이번에 겔러리 게시판 만들면서 필요해서 맹글었는데... 중복이면 삭제하겠음.
<?php
/*
제작자 : idhacker
사용상 맘대로 수정하셈. 그 책임은 본인이 지셈.
*/
class thumbImage {
var $real_path = '.';
var $target_path = '.';
var $add_name = 'thumb_';
var $image_quality = 75;
function imageResize($realImage, $target_ext, $width, $height) {
static $extName;
static $src;
static $thumb;
$extName = strtolower( substr( $realImage, -3 ) );
switch($extName) {
case 'peg' :
case 'jpg' :
$src = @ImageCreateFromJPEG($this->real_path . '/' . $realImage) or die('Cannot Open File!');
break;
case 'gif' :
$src = @ImageCreateFromGIF($this->real_path . '/' . $realImage) or die('Cannot Open File!');
break;
case 'png' :
$src = @ImageCreateFromPNG($this->real_path . '/' . $realImage) or die('Cannot Open File!');
break;
default :
echo '이 파일은 변환할 수 없습니다.';
exit;
}
$thumb = ImageCreateTrueColor($width, $height);
ImageCopyResampled($thumb, $src, 0,0,0,0, $width, $height, ImageSX($src), ImageSY($src) );
$realImage = substr($realImage, 0, -3) . $target_ext;
switch($target_ext) {
case 'jpeg' :
case 'jpg' :
@ImageJPEG($thumb, $this->target_path . '/' . $this->add_name . $realImage, $this->image_quality) or die('Writing Error : Check - Directory and Filename.');
break;
case 'gif' :
@ImageGIF($thumb, $this->target_path . '/' . $this->add_name . $realImage, $this->image_quality) or die('Writing Error : Check - Directory and Filename.');
break;
case 'png' :
@ImagePNG($thumb, $this->target_path . '/' . $this->add_name . $realImage, $this->image_quality) or die('Writing Error : Check - Directory and Filename.');
break;
default :
echo '이 확장자는 지원되는 확장자가 아닙니다.';
exit;
}
ImageDestroy($src);
ImageDestroy($thumb);
}
}
# End Class.
/********* 사용법 *********/
$obj = new thumbImage;
$obj->real_path = './test/img'; # 저장된 이미지가 있는곳.
$obj->target_path = './test/thum'; # 썸네일 이미지가 저장될 곳.
$obj->add_name = 'test_'; # 없어도 됨. 기본값 thumb
$obj->image_quality = 80; # 없어도 됨. 기본값 75 (75% 가 가장 압축대 화질이 괸찮아서...)
# imageResize(파일명, 변환될 확장자, 가로사이즈, 세로사이즈)
$obj->imageResize('sample.jpg', 'png', 200, 150); # sample.jpg를 200*150 size의 png로 저장
?>
-- 코멘트 ---
$src = @imagecreatefrom... 으로 열면
if(!$src) { 에러 } 해 줘야겠죠.
안그럼 안열렸을경우 보기흉하게 에러코드가 주욱 쌓이겠네요.
imagesize(), mime_content_type(), exif_imagetype() 셋중 아무거나 골라잡아서 이미지 종류를 알아내어 switch() 하는게 안전하겠죠.
jpg gif 는 모르는 사람들이 잘 헷갈려 적어놓는 확장자니까요. 05/10 18:40:57
[캐빈] [캐빈]
//.
imagesize() -> getimagesize() 로 변경 되어야 할것 같네요
관련자료
-
링크
댓글 0
등록된 댓글이 없습니다.