• 25-09-2012, 12:34:31
    #1
    İllaki bir gün bi yerlerde ihtiyacınız olabilir. Benim bugünlerde oldu mesela bende yazmaya gereği duydum. Benim gibi başkalarıda uğraşmasın diye burada paylaşıyorum. Kolay gelsin

    function PhpGreySclae($ImageFile){
    //Hasan RUŞANOĞLU | www.phpogreniyorum.com
    	$ImageSize = getimagesize($ImageFile);
      	$width = $ImageSize[0];
     	$height = $ImageSize[1];
    	$mime = $ImageSize['mime'];
    
    	switch ($mime) { 
    		case "image/gif": $source = imagecreatefromgif($ImageFile); break;
    		case "image/jpeg": $source = imagecreatefromjpeg($ImageFile); break;
    		case "image/png": $source = imagecreatefrompng($ImageFile); break;
    		case "image/bmp": $source = imagecreatefromwbmp($ImageFile); break;
    	}
    
    
    	$bwimage= imagecreate($width, $height); 
    	
    	for ($c=0;$c<256;$c++) 
    	{
    	$palette[$c] = imagecolorallocate($bwimage,$c,$c,$c);
    	}
    	
    	function yiq($r,$g,$b) 
    	{
    	return (($r*0.299)+($g*0.587)+($b*0.114));
    	} 
    	
    	for ($y=0;$y<$height;$y++) 
    	{
    	 for ($x=0;$x<$width;$x++) 
    	 {
    	 $rgb = imagecolorat($source,$x,$y);
    	 $r = ($rgb >> 16) & 0xFF;
    	 $g = ($rgb >> 8) & 0xFF;
    	 $b = $rgb & 0xFF;
    	
    	 $gs = yiq($r,$g,$b);
    	 imagesetpixel($bwimage,$x,$y,$palette[$gs]);
    	 }
    	} 
    
    	switch ($mime) { 
    		case "image/gif": header('Content-type: image/gif'); $ImageOut = imagepng($bwimage); break;
    		case "image/jpeg": header('Content-type: image/jpeg'); $ImageOut = imagejpeg($bwimage); break;
    		case "image/png": header('Content-type: image/png'); $ImageOut = imagepng($bwimage); break;
    		case "image/bmp": header('Content-Type: image/vnd.wap.wbmp'); $ImageOut = imagewbmp($bwimage); break;
    	} 
    	
    	return $ImageOut;
      
      
    }
    
      $ImageFile = 'eksiborsa/HaberImg/a6b6ecd1ef83bb8e2f10e4ff99200cc97038f301/500_c4ca4238a0b923820dcc509a6f75849b.png';
      PhpGreySclae($ImageFile);
  • 26-09-2012, 11:47:48
    #2
    Ellerinize sağlık, güzel bir uygulama olmuş. Ancak ben genelde bu tarz işlemler için verot.net'in upload sınıfını kullanıyorum. Yaptığım tek şey de;

    $xx->image_greyscale = true;

    demem yeterli oluyor. Bunu da tavsiye ederim ;

    http://www.verot.net/php_class_upload.htm
  • 26-09-2012, 13:01:41
    #3
    bayGaReZ adlı üyeden alıntı: mesajı görüntüle
    Ellerinize sağlık, güzel bir uygulama olmuş. Ancak ben genelde bu tarz işlemler için verot.net'in upload sınıfını kullanıyorum. Yaptığım tek şey de;

    $xx->image_greyscale = true;

    demem yeterli oluyor. Bunu da tavsiye ederim ;

    http://www.verot.net/php_class_upload.htm
    yorum için tşk ederim. bende bu tarz çalışmalarda genelde kodları kendim yazıp pratik yapmayı tercih ederim. hazırdan kaçarım genelde
  • 26-09-2012, 13:43:08
    #4
    Üyeliği durduruldu
    eline saglık faydali bir şey
  • 26-09-2012, 13:46:14
    #5
    EskiMynetim adlı üyeden alıntı: mesajı görüntüle
    eline saglık faydali bir şey

    Afiyet olsun. Bir yerlerde mutlaka bi işe yarar herhalde
  • 27-09-2012, 23:37:19
    #6
    Aynı şiiri sizden önce de yazan olmuş hocam
    http://php.about.com/od/gdlibrary/ss/grayscale_gd.htm