Gif, Jpeg ve Png Resimleri Yeniden Boyutlandırma Sınıfı

<?php
class Resim{
	var $gecerliuzantilar = array(".jpg",".gif",".png");
	var $kalite = 100;
	var $resimadres;
	var $resimnesne;
	var $Resimtip;
	var $resimboyutlandir;
	function Resim($Resim){
		if($this->IsResim($Resim)){
			$this->getirResimtip($Resim);
			$this->resimadres = $Resim;
			$this->olustur();	
			return true;
		}else{
			return false;
		}
	}
	function __destruct(){
		if($this->IsResim($this->resimadres)){
			imagedestroy($this->resimnesne);
			if(!empty($this->resimboyutlandir)){
				imagedestroy($this->resimboyutlandir);
			}
		}
	}
	function olustur(){
		switch($this->Resimtip){
			case ".gif":
				$this->resimnesne = imagecreatefromgif($this->resimadres);			
			break;
			case ".jpg":
				$this->resimnesne = imagecreatefromjpeg($this->resimadres);
			break;
			case ".png":
				$this->resimnesne = imagecreatefrompng($this->resimadres);
			break;
		}
	}
	function Resize($yuzde){
		list($genislik, $yukseklik) = getimagesize($this->resimadres);
		$yenigenislik = intval(($genislik * $yuzde) / 100);
		$yeniyukseklik = intval(($yukseklik * $yuzde) / 100);
		if($yenigenislik == 0){$yenigenislik++;}
		if($yeniyukseklik == 0){$yeniyukseklik++;}
		$this->resimboyutlandir = imagecreatetruecolor($yenigenislik, $yeniyukseklik);
		imagecopyresampled($this->resimboyutlandir, $this->resimnesne, 0, 0, 0, 0, $yenigenislik, $yeniyukseklik, $genislik, $yukseklik);
		switch($this->Resimtip){
			case ".gif":
				imagegif($this->resimboyutlandir,$this->resimadres);
			break;
			case ".jpg":
				imagejpeg($this->resimboyutlandir,$this->resimadres,$this->kalite);
			break;
			case ".png":
				imagepng($this->resimboyutlandir,$this->resimadres);
			break;
		}
	}
	function ResizeWH($W,$H){
		if($this->IsResim($this->resimadres)){
			list($genislik, $yukseklik) = getimagesize($this->resimadres);		
			$yenigenislik = $W;
			$yeniyukseklik = $H;
			$this->resimboyutlandir = imagecreatetruecolor($yenigenislik, $yeniyukseklik);
			imagecopyresampled($this->resimboyutlandir, $this->resimnesne, 0, 0, 0, 0, $yenigenislik, $yeniyukseklik, $genislik, $yukseklik);
			switch($this->Resimtip){
				case ".gif":
					imagegif($this->resimboyutlandir,$this->resimadres);
				break;
				case ".jpg":
					imagejpeg($this->resimboyutlandir,$this->resimadres,$this->kalite);
				break;
				case ".png":
					imagepng($this->resimboyutlandir,$this->resimadres);
				break;
			}
		}
	}
	function IsResim($File){
		if($this->Resimvarmi($File)){
			$uzantis = implode(",",$this->gecerliuzantilar);
			$uzanti = strtolower(substr ($File, strrpos ($File, ".")));
			$this->uzanti = $uzanti;
			return $uzanti;
			$this->gecerliuzantilar = explode(",",strtolower($uzantis));
			if(!empty($this->gecerliuzantilar)){
				if(!in_array($this->getiruzanti(),$this->gecerliuzantilar)){
					return false;
				}else{
					return true;
				}
			}else{
				return true;
			}
		}else{
			return false;
		}
	}	
	function Resimvarmi($Resim){
		if(file_exists($Resim)){
			return true;
		}else{
			return false;
		}
	}
	function getirResimtip($Resim){
		if($this->IsResim($Resim)){
			$uzanti = strtolower(substr ($Resim, strrpos ($Resim, ".")));
			switch($uzanti){
				case ".gif":
					$this->Resimtip = ".gif";
				break;
				case ".jpg":
					$this->Resimtip = ".jpg";
				break;
				case ".png":
					$this->Resimtip = ".png";
				break;
				default:
					return false;
				break;
			}
		}
	}
}
$t1=new Resim("test1.jpg");//150x100 5,21 KB
echo '<img src="test1.jpg">';
$t1->ResizeWH(100,100);//100x100 10,2 KB
echo '<img src="test1.jpg">';
$t2=new Resim("test2.jpg");//150x100 5,21 KB
echo '<img src="test2.jpg">';
$t2->Resize($yuzde=80);//120x80 10,3 KB
echo '<img src="test2.jpg">';
?>

Çıktısı