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;}