• 20-11-2012, 22:04:33
    #1
    Üyeliği durduruldu
    Merhabalar,

    Bir blog scriptinde upload ile yazıya resim ekliyoruz fakat yazıda boyutlandırdığı için netliği gidiyor. Yazı sayfasında width ve height ile boyutlandırıyoruz. Resim netliği gitmemesiiçin php'de nasıl bir yol izleyebilirim?
  • 20-11-2012, 22:24:02
    #2
    En güzel çaresi birden çok resimle çalışmak.

    Yani manşet resmi, makale resmi ve makale küçük resmi farklı dosyalar olabilir.
  • 20-11-2012, 22:26:22
    #3
    Üyeliği durduruldu
    miscel adlı üyeden alıntı: mesajı görüntüle
    En güzel çaresi birden çok resimle çalışmak.

    Yani manşet resmi, makale resmi ve makale küçük resmi farklı dosyalar olabilir.
    Çok uğraştırıyor maalesef. Güzel bir şekilde boyutlandırma yapan bir fonksiyon mevcutmudur?
  • 20-11-2012, 23:41:04
    #4
    Üyeliği durduruldu
    Kendi kullandıgım kütüphaneyi paylaşıyorum Orantılı küçültebilirsiniz resimleri.


    resim_kaydet.php i aşşagıdaki gibidir.
    function boyutlaKaydet($resim,$tmp,$max_en,$max_boy){ 
    		ob_start(); 
    		$boyut = getimagesize($tmp); 
    		$en    = $boyut[0]; 
    		$boy   = $boyut[1]; 
    		$x_oran = $max_en  / $en; 
    		$y_oran = $max_boy / $boy; 
    		if(($en <= $max_en) and ($boy <= $max_boy)){ 
    			$son_en  = $en; 
    			$son_boy = $boy; 
    			} else if (($x_oran * $boy) < $max_boy){ 
    			$son_en  = $max_en; 
    			$son_boy = ceil($x_oran * $boy); 
    			} else { 
    			$son_en  = ceil($y_oran * $en); 
    			$son_boy = $max_boy; 
    		} 
    	$uzanti = strtolower($boyut["mime"]);
    	switch($uzanti){
    		case "image/gif":	  
    			$eski = imagecreatefromgif($tmp); 
    			$yeni = imagecreatetruecolor($son_en,$son_boy); 
    			imagecopyresampled($yeni,$eski,0,0,0,0,$son_en,$son_boy,$en,$boy); 
    			//imagegif($yeni,$resim); 
    		break;
    		case "image/x-png":
    			$eski = imagecreatefrompng($tmp);
    			$yeni = imagecreatetruecolor($son_en,$son_boy); 
    			imagecopyresampled($yeni,$eski,0,0,0,0,$son_en,$son_boy,$en,$boy); break;
    		case "image/png":	  
    			$eski = imagecreatefrompng($tmp);
    			$yeni = imagecreatetruecolor($son_en,$son_boy); 
    			imagecopyresampled($yeni,$eski,0,0,0,0,$son_en,$son_boy,$en,$boy); 
    			//imagepng($yeni,$resim); 
    		break;
    		case "image/jpeg": 
    		case "image/pjpeg": 
    		case "image/jpg":	
    			$eski = imagecreatefromjpeg($tmp);
    			$yeni = imagecreatetruecolor($son_en,$son_boy); 
    			imagecopyresampled($yeni,$eski,0,0,0,0,$son_en,$son_boy,$en,$boy); 
    			
    		break;
    		default: 	  
    		die('Sadece Resim Dosyasý Gönderebilirsiniz');
    	}
    	imagejpeg($yeni,$resim);
    	imagedestroy($eski); 
    	imagedestroy($yeni);
    }

    UPLOAD.PHP aşşagıdaki gibidir
    include('../harici/resim_kaydet.php');
    
    $randla1 = rand(111111,99999);
    $klasor  = "../img/";
    $klasor_kucukresim  = "../img/kucuk/";
    
    $resim  = $klasor.$randla1.".jpg";
    $ufakresim  = $klasor.$randla1.".jpg";
    
    $resimBuyukW = 500;
    $resimBuyukH = 500 ;
    
    $resimUfakW = 100;
    $resimUfakH= 100 ;
    
    
    $SqlREsimadi= $randla1.".jpg";
    //Resmin SQLde kayıt ismi bu şekilde olacaktır örn : 23532.jpg
    boyutlaKaydet($resim,$_FILES["resim"]["tmp_name"],$resimBuyukW,$resimBuyukH);
    
    boyutlaKaydet($ufakresim,$_FILES["resim"]["tmp_name"],$resimUfakW ,$resimUfakH);
    //Birden fazla resmi diledigin oranlarda orantılı olarak kücültebilir ve kaydedebilirsin.
    
    $baglanti->query("insert into galeri (galeri) VALUES('".$SqlREsimadi."')");
    //Yukardaki gibi SQL işlemi  $SqlResimadi olarak yapabilirsin.
  • 22-11-2012, 07:37:16
    #5
    Üyeliği durduruldu
    resize classları var ancak 2-3k hittse cpu %40 lara ulaşır
  • 22-11-2012, 15:07:25
    #6
    Nyks adlı üyeden alıntı: mesajı görüntüle
    resize classları var ancak 2-3k hittse cpu %40 lara ulaşır
    resize classlarını resmi gösterirken değil kaydederken kullanmak lazım.
  • 22-11-2012, 15:10:53
    #7
    Üyeliği durduruldu
    muhakkak kaydederken resize edip ayrı ayrı kaydetmek en iyisi ama arkadaş çok ugrastırdığından bahsetmiş alternatif olarak yazdım sadece
  • 22-11-2012, 15:14:24
    #8
    Üyeliği durduruldu
    wp eklentisi olan thimbtumb'ı kullanmanı tavsiye ederim.
    yüklediğin resmi nereye koyacaksın?
    - 600px genişliğinde blog posta, o zaman thimbtumb'la oranlı bir biçimde ekle gitsin
    thumbnail mi lazım?
    -thimbtumb'la 150*150 px'e ayarla gitsin.

    vs vs geliştirilebilir güzel bi eklentidir, tavsiye ederim. Kodlarını kendi sitene uyarlayabilirsin.