2009. 6. 16. 16:08 PROGRAMMING
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;}

최근에 올라온 글

최근에 달린 댓글