Permalink
Fetching contributors…
Cannot retrieve contributors at this time
77 lines (67 sloc) 1.84 KB
<?php
# $Id: image.php,v 1.4 2009-11-16 21:52:45 oops Exp $
include_once 'include/variable.php';
include_once 'include/print.php';
include_once 'include/check.php';
include_once 'include/error.php';
parse_query_str ();
$ImgPath = rawurldecode ($path);
$ImgType = check_filetype ($ImgPath);
# 원본 이미지로 부터 JPEG 파일을 생성
$otype = GetImageSize ($ImgPath);
switch ( $otype[2] ) {
case 1:
$img = ImageCreateFromGIF ($ImgPath);
break;
case 2:
$img = ImageCreateFromJPEG ($ImgPath);
break;
case 3:
$img = ImageCreateFromPNG ($ImgPath);
break;
default:
print_error ('Enable ImgPath file is type of GIF,JPG,PNG', 250, 250, 1);
}
# 원본 이미지의 width, height 를 구함
$owidth = ImagesX ($img);
$oheight = ImagesY ($img);
# width 와 height 를 모두 0 으로 주었을 경우 기본값 50
if ( ! $width && ! $height ) $width = $height = 50;
# width 가 없을 경우 height 의 축소/확대 비율로 width 를 구함
if ( ! $width ) {
$ratio = ((real) $height / $oheight);
$width = ((int) $owidth * $ratio);
}
# height 가 없을 경우 width 의 축소/확대 비율로 height 를 구함
if ( ! $height ) {
$ratio = ((real) $width / $owidth);
$height = ((int) $oheight * $ratio);
}
# 새로운 이미지를 생성
$newimg = ImageCreate ($width, $height);
# 새로운 이미지에 원본 이미지를 사이즈 조정하여 복사.
ImageCopyResized ($newimg, $img, 0, 0, 0, 0, $width, $height, $owidth, $oheight);
# 타입에 따라 헤더를 출력
switch ( $ImgType ) {
case 'wbmp' :
$type_header = 'vnd.wap.wbmp';
break;
default :
$ImgType = ($ImgType == 'jpg') ? 'jpeg' : $ImgType;
$type_header = $ImgType;
}
Header("Content-type: image/{$type_header}");
switch ( $ImgType ) {
case 'png' :
ImagePNG ($newimg);
break;
case 'wbmp' :
ImageWBMP ($newimg);
break;
case 'gif' :
ImageGIF ($newimg);
default :
ImageJPEG ($newimg, '', 80);
}
ImageDestroy ($newimg);
?>