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

PHP
54 lines
<?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>';
}
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çı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
32 lines
<?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"]);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

index.html içeriği

HTML
4 lines
<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">
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı