• 03-04-2010, 22:40:19
    #1
    Eposta Aktivasyonu Gerekmekte
    Php OOP'a alışmaya çalışıyorum.
    Amatör olarak bir resim sınıfı yazmaya çalıştım.Biraz amatör oldu.Kısıtlı özellikleri var.
    Yorumlarınızı,önerilerinizi esirgemezseniz sevinirim.

    Zamanla daha da geliştirmeye çalışacağım.

    Kullanımı:
    <?php
    include("resimcik.sinif.php"); //sınıfımızı include ediyoruz.
    
    $resim=new resimcik('havhav.jpg');
     /* resim yolunu ve adresini yazarak dosyamızı açıyoruz.isterseniz resimcik('yeni',300,400,'jpeg') yaparak 300 e 400 boyutlarında jpeg yeni bi 
    dosya oluşturabilirsiniz.
    */
    
    $resim->boyutlandir(600,700); //çok rahat bi şekilde resmimizi 600 e 700 olacak şekilde boyutlandırabiliriz.
    
    $resim->yaziyaz("Havhav",10,70,"siyah",60,0); 
    /* yaparak 10,70 kordinatında siyah yazıyla 60 px boyutunda 0 derece açıyla
     Havhav  yazdırabilirsiniz.İstseniz ek bir parametreyle fontunuzu da seçebilirsiniz.*/
    
    $resim->saydamyazi("r10@Dualwarior",50,700,"mavi",60); 
    /* yaparak 50,700 kordinatında mavi renkle %60 saydamlıkla r10@Dualwarior 
    yazdırabilirsiniz.ek parametrelerle boyut,açı,font gibi özellikleri değiştirebilirsiniz.
    */
    
    $resim->kordinatduzlemi();
    /* yazdığımız zaman 30px kenardan boşluk bırakarak resim üzerinde çizgiler 
    çizerek istediğiniz kordinatı rahatcana bulmanızı sağlar.Örnek resimden daha iyi anlayabilirsiniz. */
    
    $resim->ekranaver();
    /* yaptığınız zaman resmi ekrana bastırırsınız.
    Eğer $resim->kaydet('isim.uzantı',kalite); yazarsanız resmi kaydedersiniz.
    örnek: $resim->kaydet('havhavcik.jpg',100); yaparsanız resmi 100 kalitesiyle 
    havhavcik.jpg olarak kaydedebilirsiniz.
    */
    Bu şekilde kullanabilirsiniz ya da yeni bi resim oluşturup cizgiciz,boya gibi
    fonksiyonları kullanıp resim yapabilirsiniz fakat o olayı daha tam geliştiremedim.

    Anlatım kabataslak oldu ilerde güncelleyeceğim.

    resimcik sınıfımız:
    <?php
    /*
    Resimcik sınıfı 1.0.0
    Yazar: Dualwarior
    */
    class resimcik {
    	
    	public $fontyol="../dosyalar/font/";
    	public $renkler=array("beyaz"=>array(255,255,255),"siyah"=>array(0,0,0),"kirmizi"=>array(255,0,0),"yesil"=>array(0,255,0),"mavi"=>array(0,0,255));
    	
    	
    	function __construct($yol,$en=100,$boy=100,$uzn='jpeg') {
            
    		if($yol=="yeni") {
    		$this->resim=imagecreatetruecolor($en,$boy);
    		
    		$this->en=$en;
    		$this->boy=$boy;
    		
    		$uzanti=$uzn;
    		} else {
    		$uzan=array("jpg"=>"jpeg","jpeg"=>"jpeg","gif"=>"gif","png"=>"png","JPG"=>"jpeg","JPEG"=>"jpeg","GIF"=>"gif","PNG"=>"png");	
    		$bl=explode('.',$yol);
    		$uzanti=$uzan[end($bl)] or die ("Dosya uzantısı alınamadı.");
    		$resacfok='imagecreatefrom'.$uzanti;
    		$this->resim=$resacfok($yol);
    		
    		$this->en=imagesx($this->resim);
    		$this->boy=imagesy($this->resim);
    		
    		
    		}
    		
    		$this->uzanti=$uzanti;
    		
    
    	}
    	
    	function renk($renk,$k=0,$y=0,$m=0) {
    		if($renk=="yeni") {
    			return imagecolorallocate($this->resim,$k,$y,$m);
    		}else {
    			return imagecolorallocate($this->resim,$this->renkler[$renk][0],$this->renkler[$renk][1],$this->renkler[$renk][2]); 
    		}
    	
    	}
    	
    	function renk2($renk2,$kir,$yes,$mav,$sayd) {
    		if($renk2=="yeni") {
    			return imagecolorallocatealpha($this->resim,$kir,$yes,$mav,$sayd);
    		}else {
    			return imagecolorallocatealpha($this->resim,$this->renkler[$renk2][0],$this->renkler[$renk2][1],$this->renkler[$renk2][2],$sayd);
    		}
    		
    	}
    	
    	function yaziyaz($metin,$l,$z,$renk,$boyut=15,$aci=0,$font='arial.ttf',$k=0,$y=0,$m=0) {
    		$renk=$this->renk($renk,$k,$y,$m);
    		imagettftext($this->resim,$boyut,$aci,$l,$z,$renk,$this->fontyol.$font,$metin);
    	}
    	
    	function saydamyazi ($metin,$g,$g2,$sydmrenk,$sydmlik=30,$boyut=80,$aci=45,$font='arial.ttf',$kirm=0,$yesi=0,$mavi=0) {
    		$renkx=$this->renk2($sydmrenk,$kirm,$yesi,$mavi,$sydmlik);
    		imagettftext($this->resim,$boyut,$aci,$g,$g2,$renkx,$this->fontyol.$font,$metin);
    		
    	}
    	
    	function boya($renk,$xx=0,$yy=0,$k=0,$y=0,$m=0) {
    		$brenk=$this->renk($renk,$k,$y,$m);
    		imagefill($this->resim,$xx,$yy,$brenk);
    	}
    	
    	function cizgiciz($xx1,$yy1,$xx2,$yy2,$renk,$k=0,$y=0,$m=0) {
    		$renk=$this->renk($renk,$k,$y,$m);
    		imageline($this->resim,$xx1,$yy1,$xx2,$yy2,$renk);
    	 	
    	}
    	
    	function kordinatduzlemi() {
    		$enn=30;
    		$boyy=30;
    		
    		$em=imagesx($this->resim)+$enn;
    		$by=imagesy($this->resim)+$boyy;
    		$dualwarior=imagecreatetruecolor($em,$by);
    		imagecopy($dualwarior,$this->resim,$enn,$boyy,0,0,imagesx($this->resim),imagesy($this->resim));
    		unset($this->resim);
    		$this->resim=$dualwarior;
    		imagechar($this->resim,0,20,20,'0',$this->renk("beyaz"));
    		$ensay=floor(($em)/20);
    		$boysay=floor(($by)/20);
    		$crp=20;
    		for($vv=0; $vv<$ensay; $vv++) {
    			imagestring($this->resim,0,46+($vv*$crp),5,($vv+1)*$crp,$this->renk("beyaz"));
    			$this->cizgiciz($crp+$enn+($vv*$crp),15,$crp+$enn+($vv*$crp),$by,"beyaz");
    		}
    		
    		for($bb=0; $bb<$boysay;$bb++) {
    			imagestring($this->resim,0,5,46+($crp*$bb),($bb+1)*$crp,$this->renk("beyaz"));
    			$this->cizgiciz(23,49+($bb*$crp),$em,49+($bb*$crp),"beyaz");
    		}
    		
    	}
    	
    	function boyutlandir($en,$boy) {
    		$resim2=imagecreatetruecolor($en,$boy);
    		imagecopyresized($resim2,$this->resim,0,0,0,0,$en,$boy,$this->en,$this->boy);
    		
    		unset($this->resim);
    		
    		$this->resim=$resim2;
    	}
    	
    	function ekranaver() {
    		header("Content-type:image/$this->uzanti");
    		$resbasfok='image'.$this->uzanti;
    		$resbasfok($this->resim);
    		
    	}
    	
    	function kaydet($isim,$kalite=100) {
    		$reskayfok='image'.$this->uzanti;
    		$reskayfok($this->resim,$isim,$kalite);
    	}
    	
    	function __destruct() {
    		imagedestroy($this->resim);
    	}
    	
    }
    Not:Şimdilik siyah,beyaz,kirmizi,yesil,mavi olmak üzere 5 renk vardır.Eğer başka renk kullancaksanız renk yerine yeni yazıp kullancağınız fonksiyona rgb olarak 3 tane ek parametreyle renginizi tanımlayabilirsiniz.

    Not2: public $fontyol="/font/";
    Yazı yazdırmak için bu satırı düzenleyerek font yolunu belirmeniz ve bu yola kullancağınız fontu koymanız gereklidir.Varsayılan font, arial.ttf dir.Denetim->Yazı tipleri klasöründen alabilirsiniz.

    Yukarıda örnek kullanımını verdiğim kısmın çıktısı şu şekildedir:



    Lütfen kaynak belirmeden yayımlamayınız.
  • 03-04-2010, 22:56:27
    #2
    eline sağlık kendini geliştirmeye devam hocam oop öğrenmek şart oldu
  • 04-04-2010, 02:43:10
    #3
    Güzel çalışma Olmuş Eline Sağlık.
  • 05-04-2010, 17:03:28
    #4
    Eposta Aktivasyonu Gerekmekte
    Sınıfta bi kaç sorun vardı düzelttim.