• 08-09-2010, 15:27:37
    #1
    Kullanıcıların içerik girmesi için bir textarea var ve kullanıcı buradan upload yaparak değilde adres girerek resim ekliyor.

    Ben basitce aşağıdakini kullandım ama bu seferde küçücük resimler 500px genişliğinde oluyor, doğal olarak görüntü kalitesi düşüyor vs. hoş durmuyor.


    function resim($deger){
    $kelimeler = array("<img");
    $sonuc = str_replace($kelimeler,"<img width='500'",strtolower($deger));
    return $sonuc;
    }
    Resimin boyutu 500 den büyükse küçült değilse küçültme mantığıyla nasıl bir kod yazmam gerkiyor?

    Yardımlarınız için teşekkürler.
  • 08-09-2010, 15:50:24
    #2
    Zamanında şöyle bir fonksiyon yazmıştım. Biraz karışık, daha basiti vardır muhakkak...


    function resimboyutlandir($resim,$max_en,$max_boy){
     $boyut = @getimagesize($resim);
         $en    = $boyut[0];
         $boy   = $boyut[1];
    
         # Yeni boyutlar
    	 if($en==0) { $en=1; }
    	 if($boy==0) { $boy=1; }
        $x= $max_en / $en ;
    	$y = $max_boy/ $boy;
    	
    	if(($en <= $max_en) && ($boy <= $max_boy)){
    	$sonen=$en;
    	$sonboy=$boy;
    	}
    	
    	elseif(($x * $boy) <= $max_boy){
    	$sonen=$max_en;
    	$sonboy=ceil($x*$boy);
    	}
    	
    	else {
    	$sonboy=$max_boy;
    	$sonen=ceil($y*$en);
    	}
    
    $abc=" width='$sonen' height='$sonboy' ";
    
    return $abc;
    }

    Bu fonksiyona thumbnail işlevi ekleyerek daha da geliştirebilirsin...
  • 08-09-2010, 16:05:27
    #3
    eagle_one adlı üyeden alıntı: mesajı görüntüle
    Zamanında şöyle bir fonksiyon yazmıştım. Biraz karışık, daha basiti vardır muhakkak...


    function resimboyutlandir($resim,$max_en,$max_boy){
     $boyut = @getimagesize($resim);
         $en    = $boyut[0];
         $boy   = $boyut[1];
    
         # Yeni boyutlar
    	 if($en==0) { $en=1; }
    	 if($boy==0) { $boy=1; }
        $x= $max_en / $en ;
    	$y = $max_boy/ $boy;
    	
    	if(($en <= $max_en) && ($boy <= $max_boy)){
    	$sonen=$en;
    	$sonboy=$boy;
    	}
    	
    	elseif(($x * $boy) <= $max_boy){
    	$sonen=$max_en;
    	$sonboy=ceil($x*$boy);
    	}
    	
    	else {
    	$sonboy=$max_boy;
    	$sonen=ceil($y*$en);
    	}
    
    $abc=" width='$sonen' height='$sonboy' ";
    
    return $abc;
    }

    Bu fonksiyona thumbnail işlevi ekleyerek daha da geliştirebilirsin...
    Öncelikle çok büyük teşekkürler ancak nasıl kullancağımı tam anlayamadım.
  • 08-09-2010, 16:10:31
    #4
    Muzo adlı üyeden alıntı: mesajı görüntüle
    Öncelikle çok büyük teşekkürler ancak nasıl kullancağımı tam anlayamadım.
    Kusura bakma anlatmadım...

    $donendeger = resimboyutlandir ("resim.jpg", 400, 300);

    // width='en' height='yükseklik'

    İlk parametre resimin yolu, ikincisi resimin alabileceği en büyük genişlik (width), ikincisi ise olası en büyük yükseklik (height)

    Mesela, resim.jpg 80x80 ise boyutlarıyla oynama yapılmaz... Parametredeki değerlerden büyük ise, orantılı bir şekilde en fazla 400x300 olacak şekilde küçültülür..
  • 08-09-2010, 16:24:23
    #5
    tekrar çok çok teşekkürler, işimi tamamen gördü çok sağolun