Resim Yükleme ve Boyutlandırma Sınıfı

<?php
header('Content-Type: text/html; charset=utf-8');
class resimYukleyici{
	public $isim;
	public $tip;
	public $boyut;
	public $gecici;
	public $hata;
	public $resim;
	public $kucukresim;
	public $mesaj;
	public $yeniresim;
	public $yenikucukresim;
	public function __construct(){
		global $_FILES;
		$this->hata = $_FILES['image']['error'];
		if($this->hata != 0){
			$this->mesaj = $this->hata;
			$this->mesaj;
			return false;
		}else{
			$this->isim = $_FILES['image']['name'];
			$this->tip = $_FILES['image']['type'];
			$this->boyut = $_FILES['image']['size'];
			$this->gecici = $_FILES['image']['tmp_name'];
			return true;
		}
	}
	public function validate($maxdosyaboyutu,$minresimboyutu){
		if($this->tip != 'image/jpeg' && $this->tip != 'image/gif' && $this->tip != 'image/png'){
			$this->mesaj = 'Hatali dosya formati.';
			return false;
		}
		if($this->boyut > $maxdosyaboyutu){
			$this->mesaj = 'Dosya cok buyuk.';
			return false;
		}
		$boyut = getimagesize($this->gecici);
		if($boyut[0] < $minresimboyutu || $boyut[1] < $minresimboyutu){
			$this->mesaj = 'boyutlar cok kucuk.';
			return false;
		}else{
			return true;
		}
	}
	public function kirp($maxBoyut, $maxKucukBoyut){
		list($orjinalgenislik, $orjinalyukseklik) = getimagesize($this->gecici);
		if($orjinalgenislik > $orjinalyukseklik){
			$genislik = $maxBoyut;
			$yukseklik = intval($maxBoyut*($orjinalyukseklik/$orjinalgenislik));
			$kucukgenislik = $maxKucukBoyut;
			$kucukyukseklik = intval($maxKucukBoyut*($orjinalyukseklik/$orjinalgenislik));
		}else if($orjinalgenislik < $orjinalyukseklik){
			$genislik = intval($maxBoyut*($orjinalgenislik/$orjinalyukseklik));
			$yukseklik = $maxBoyut;
			$kucukgenislik = intval($maxKucukBoyut*($orjinalgenislik/$orjinalyukseklik));
			$kucukyukseklik = $maxKucukBoyut;
		}else{
			$genislik = $maxBoyut;
			$yukseklik = $maxBoyut;
			$kucukgenislik = $maxKucukBoyut;
			$kucukyukseklik = $maxKucukBoyut;
		}
		$this->resim = imagecreatetruecolor($genislik,$yukseklik);
		$this->kucukresim = imagecreatetruecolor($kucukgenislik, $kucukyukseklik);
		if($this->tip == 'image/gif'){
			$kaynakresim = imagecreatefromgif($this->gecici);
		}else if($this->tip == 'image/jpeg'){
			$kaynakresim = imagecreatefromjpeg($this->gecici);
		}else{
			$kaynakresim = imagecreatefrompng($this->gecici);
		}
		imagecopyresampled($this->resim,$kaynakresim,0,0,0,0,$genislik,$yukseklik,$orjinalgenislik,$orjinalyukseklik);
		imagecopyresampled($this->kucukresim,$kaynakresim,0,0,0,0,$kucukgenislik,$kucukyukseklik,$orjinalgenislik,$orjinalyukseklik);
		
	}
	public function yukle($dizin,$kalite){
		$uzanti = explode('.',$this->isim);
		$isim=date("YmdHis").rand(1,100);
		$this->yeniresim = $isim.'.'.$uzanti[1];
		$this->yenikucukresim = $isim.'kucuk.'.$uzanti[1];
		if($this->tip == 'image/gif'){
			imagegif($this->resim, ($dizin.$this->yeniresim));
			imagegif($this->kucukresim, $dizin.$this->yenikucukresim);
		}
		else if($this->tip == 'image/jpeg'){
			imagejpeg($this->resim, $dizin.$this->yeniresim, $kalite);
			imagejpeg($this->kucukresim, $dizin.$this->yenikucukresim, $kalite);
		}
		else{
			imagepng($this->resim,$dizin.$this->yeniresim);
			imagepng($this->kucukresim,$dizin.$this->yenikucukresim);
		}
		$this->mesaj = 'Dosya yuklendi.';
	}
}
if (isset($_POST['yukle'])){
	$dizin=dirname(__FILE__)."/";
	$i=new resimYukleyici;
	$i->kirp(250,250);
	$i->yukle($dizin ,100);
	echo $i->yeniresim.'<br>';
	echo '<img src="/'.$i->yeniresim.'">';
}else{
	echo '<form action="" method="post" enctype="multipart/form-data">
  <input type="file" name="image">
  <input type="submit" name="yukle" value="Yükle">
	</form>';
}
?>

Çıktısı

2018062622193729.png