Php Resim Kırpma Sınıfı

ozkanarici1

Moderator
Yönetici
Mesajlar
150
Tepkime puanı
389
Php Resim Kırpma Sınıfı
Boş vakitleri değerlendirme amaçlı yazdığım basit bir Php resim yükleme ve kırpma sınıfıdır.Betik yüklenen resmi kırpıyor ve orjinal halinide orginals klasorune gönderiyor.Görsel eklerken daha hızlı yuklenmesini sağlamak için görsellerinizi kırpma işlemi için kullanabilirsiniz

index.php

PHP:
<?php
error_reporting(E_ALL);
error_reporting(0);
include('upload.class.php');

?>


    <form action="index.php" method="POST" enctype="multipart/form-data">
        <input type="file" name="dosya" />
        <input type="submit" value="Gönder" />
    </form>

<?php

$dosyayol=$_FILES['dosya']['tmp_name'];
$dosyaadi=$_FILES['dosya']['name'];
$dboyut=$_FILES['dosya']['size'];
$dtip=$_FILES['dosya']['type'];

$resim=new Resim;
$resim->upload($dosyayol,$dtip,$dosyaadi,$dboyut);
$resim->boyutlandir(150,150);

?>
upload.class.php

<?php

class Resim {

   protected  $dizin="thumb"; //resimlerin kırpılacağı dizin
    protected $thumb="images/thumb";
    protected static $dosyaadi;
    protected static $gelendosyaadi;
    protected $uzanti=".jpeg"; //resim uzantıları
    protected $gecerliuzanti=array("image/jpeg","image/pjpeg","image/png","image/gif"); //izin veriler yükleme uzantılrı
    protected $dosyayol;
    protected $yeniad;
    protected $maxboyut="2000"; //İzin verilen dosya boyutu kb cinsinden

    public function upload($dosyayol,$dtip,$dosyaadi,$boyut){
self::$gelendosyaadi=$dosyaadi;

        if(empty($dosyayol)){
            echo"Dosya seçilmemiş";
        }
        else{

            if(!in_array($dtip,$this->gecerliuzanti)){
                echo"sadece resim dosyası yuklenebilir";

            }
            else{
               if($boyut>$this->maxboyut*1024){
                   echo "2mbdan büyük olamaz";
               }
                else{
                    $this->yeniad=md5(uniqid($dosyaadi));
                    self::$dosyaadi=$this->yeniad;

                    move_uploaded_file($dosyayol,$this->dizin."/".$this->yeniad.$this->uzanti);
                    copy($this->dizin."/".self::$dosyaadi.$this->uzanti,$this->dizin."/orginals/".self::$dosyaadi.$this->uzanti);
                }
            }
        }

    }
    public function boyutlandir($yukseklik="150",$genislik="150"){

        //resmin ismini girin
        $resim=$this->dizin."/".self::$dosyaadi.$this->uzanti;

//yeni resmin genişliğini girin
        $r_genislik=$genislik;
//yeni resmin yüksekliğini girin
        $r_yukseklik=$yukseklik;

//resmin bilgilerinin alınması
        list($gen, $yuk, $type) = getimagesize($resim);

//en ve boy oranının hesaplanması
        $enOran = $r_genislik / $gen;
        $boyOran = $r_yukseklik / $yuk;

//aranın ayarlanması
        if($enOran > $boyOran){
            $yEn = floor($gen * $enOran);
            $yBoy = floor($yuk * $enOran);
        }else{
            $yEn = floor($gen * $boyOran);
            $yBoy = floor($yuk * $boyOran);
        }

//kesilmeye başlangıç noktalarının hesaplanaması
        $fEn = floor(0 - (($yEn - $r_genislik) / 2));
        $fBoy = floor(0 - (($yBoy - $r_yukseklik) / 2));

//resmin hafızaya alınması
        $o_img = imagecreatefromjpeg($resim);

//renklerin belirlenmesi
        $g_img = imagecreatetruecolor($r_genislik, $r_yukseklik);

//resmi keserek oluşturma
        imagecopyresampled($g_img,$o_img,$fEn,$fBoy,0,0,$yEn,$yBoy,$gen,$yuk);
        imagejpeg($g_img, ''.$resim);

//resmin kaynağını silme
        imagedestroy($o_img);
        imagedestroy($g_img);

    }

}

?>
 

Benzer konular

Çevrimiçi üyeler

Şu anda çevrimiçi üye yok.

Forum istatistikleri

Konular
861
Mesajlar
1,002
Kullanıcılar
504
Son üye
unalcanip
Üst