Küçük Resim Önizlemesi Thumbnail Oluşturma Sınıfı

<?php
class kucukResim{
	var $uzanti;
	var $dosya;
	var $cikti;
	function olustur($enCokGenislik, $enCokYukselik){
		$boyut = GetImageSize($this->dosya);
		$genislik = $boyut[0];
		$yukseklik = $boyut[1];
		$x_oran = $enCokGenislik / $genislik;
		$y_oran = $enCokYukselik / $yukseklik;
		if(($genislik <= $enCokGenislik) && ($yukseklik <= $enCokYukselik)){
			$tn_genislik = $genislik;
			$tn_yukseklik = $yukseklik;
		}elseif(($x_oran * $yukseklik) < $enCokYukselik){
			$tn_yukseklik = ceil($x_oran * $yukseklik);
			$tn_genislik = $enCokGenislik;
		}else{
			$tn_genislik = ceil($y_oran * $genislik);
			$tn_yukseklik = $enCokYukselik;
		}
		if ($this->uzanti == "jpg"){
			$dosya = ImageCreateFromJpeg($this->dosya);
			$cikti = ImageCreateTrueColor($tn_genislik, $tn_yukseklik);
			ImageCopyResized($cikti, $dosya, 0, 0, 0, 0, $tn_genislik, $tn_yukseklik, $genislik, $yukseklik);
			ImageJpeg($cikti, $this->cikti);
		}else{
			$dosya = ImageCreateFromGif($dosya);
			$cikti = ImageCreateTrueColor($tn_genislik, $tn_yukseklik);
			ImageCopyResized($cikti, $dosya, 0, 0, 0, 0, $tn_genislik, $tn_yukseklik, $genislik, $yukseklik);
			ImageGif($cikti, $this->cikti);
		}
		return true;
	}
}
if(isset($_FILES['dosya'])){
	$tum = new kucukResim;
	$kap = explode(".", $_FILES['dosya']['name']);
	$tum->uzanti = $kap[1];
	$tum->dosya = $_FILES['dosya']['tmp_name'];
	$tum->cikti = $kap[0]."_thumb.".$kap[1];
	if($tum->olustur(100,100)){
		echo '<img src="'.$_FILES['dosya']['name'].'">';
		echo '<img src="'.$tum->cikti.'">';
	}else{
		die("Hata");
	}
}else{
	echo '<form action="" method="post" enctype="multipart/form-data">
  <input type="file" name="dosya">
  <input type="submit" value="Yükle" accept="image/jpeg|image/gif">
	</form>'; 
} 
?>

Çıktısı

test.jpg – 150×100 – 5,21 KB
test_thumb.jpg – 100×67 – 2,87 KB

Resmin Değişik Renk Versiyonlarını Almak (Gri, Kırmızı, Yeşil, Mavi)

gif.php içeriği

<?php
class renk{
	var $resim;
	var $renk;
	function islem(){
		$toplam=imagecolorstotal($this->resim);
		for($i=0;$i<$toplam;$i++){
			 $eski=imagecolorsForIndex($this->resim,$i);
			 $ortak=(int)($eski['red']+$eski['green']+$eski['blue'])/3;
			 if(!$this->renk){
				 imagecolorSet($this->resim,$i,$ortak,$ortak,$ortak);
			 }elseif($this->renk==1){
				 imagecolorSet($this->resim,$i,$ortak,0,0);
			 }elseif($this->renk==2){
				 imagecolorSet($this->resim,$i,0,$ortak,0);
			 }elseif($this->renk==3){
				 imagecolorSet($this->resim,$i,0,0,$ortak);
			 }
		}
	}
	function degistir($resim,$renk){
		$resim=imagecreatefromgif($resim);
		$this->resim=$resim;
		$this->renk=$renk;
		$this->islem();
		header("Content-Type: image/gif");
		return imageGif($resim);
	}
}
$renk=new renk();
echo $renk->degistir($_GET["resim"],$_GET["renk"]);
?>

index.html içeriği

<img border=0 src="gif.php?resim=http://ulusanyazilim.com/wp-content/uploads/2018/05/dunya-300x300.gif&renk=0">
<img border=0 src="gif.php?resim=http://ulusanyazilim.com/wp-content/uploads/2018/05/dunya-300x300.gif&renk=1">
<img border=0 src="gif.php?resim=http://ulusanyazilim.com/wp-content/uploads/2018/05/dunya-300x300.gif&renk=2">
<img border=0 src="gif.php?resim=http://ulusanyazilim.com/wp-content/uploads/2018/05/dunya-300x300.gif&renk=3">

Çıktısı