php로 thumbnail만들기
옛날에 쓰던 고대코드 당근 gd2는 깔려있어야 작동합니다. 출력은 jpg로 하게 되어있습니다. 원래는 apm환경에서 쓰던건데 방금 windows php에서 테스트해보고 올립니다.
사용법: Thumbnail(넓이,높이,대상파일,출력파일(지정안해도됨)); Thumbnail(120,120,$dir.$newFilename);
소스:
function Thumbnail($Width,$Height,$File,$FileName=false){
//Created by Kaudo www.kaudo.com
global$File_type;
$ImageSize=ShrinkImage(max($Width,$Height),$File);
if(!$FileName && strpos($File,".")<0) $FileName=$File."_thumb";
elseif(!$FileName) $FileName=substr($File,0,strrpos($File,"."))."_thumb.jpg";
$ImageInfo=getimagesize($File);
if($ImageInfo[0]==$Width && $ImageInfo[1]==$Height) copy($File,$FileName);
else{
$Image=imagecreatetruecolor($ImageSize[0],$ImageSize[1]);
if($ImageInfo[2]==1) $Source=imagecreatefromgif($File);
elseif($ImageInfo[2]==2) $Source=imagecreatefromjpeg($File);
elseif($ImageInfo[2]==6) $Source=imagecreatefromwbmp($File);
imagecopyresized($Image,$Source,0,0,0,0,$ImageSize[0],$ImageSize[1],$ImageInfo[0],$ImageInfo[1]);
imagejpeg($Image,$FileName);}}
function ShrinkImage($Max,$Name){
//Created by Kaudo www.kaudo.com
if($Name) $Img=GetImageSize($Name);
if($Img[0]>$Max || $Img[1]>$Max){
$Value=$Max/$Img[0];
for($i=0;$i<2;$i++) $Imgs[$i]=round($Img[$i]*$Value);
if($Imgs[1]>$Max){
$Value=$Max/$Img[1];
for($i=0;$i<2;$i++) $Imgs[$i]=round($Img[$i]*$Value);}
}else $Imgs=$Img;
$Imgs[2]=$Img[0];
$Imgs[3]=$Img[1];
return $Imgs;}