• 15-04-2013, 16:24:45
    #1
    Selam arkadaşlar şöyle bir sorum var bakalım yapan var mı daha önce.

    Örneğin 100x100px ebatlarında bir imajın sol üst köşesinden başlayarak, her pikselindeki renk kodunu bularak sırasıyla ekrana yazdıran bir kod parçacığı var mıdır elinizde ya da nasıl yapılabilir?
  • 15-04-2013, 16:39:21
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Çok enteresan bir soru. Çözümü burada da paylaşırsanız sevinirim.
  • 15-04-2013, 18:27:35
    #3
    ASCII resimler oluşturmaya çalışıyorsunuz sanırım.
  • 15-04-2013, 18:40:15
    #4
    üniversitede hoca mı sordu bunu?
    bir kaç sene önce bir arkadaşa da sormuşlardı. hatta onun ki tam olarak şöyleydi; php vasıtasıyla siteye resim yüklenecek, bu yüklenen resmin her px'lindeki renk kodu alınıp div lere arkaplan rengi verilerek o resmi html olarak ekrana basılacak hale getirme.

    yapmıştım ben bunu ama ara ki bulasın. bakayım hocam bulursam paylaşırım. eğer ödevse yazarız.
  • 15-04-2013, 19:15:08
    #5
    <?php
    //sahibi sk89q, php.net
    function imagecreatefromfile($path, $user_functions = false){
        $info = @getimagesize($path);
        if(!$info){return false;} 
        $functions = array(
            IMAGETYPE_GIF => 'imagecreatefromgif',
            IMAGETYPE_JPEG => 'imagecreatefromjpeg',
            IMAGETYPE_PNG => 'imagecreatefrompng',
            IMAGETYPE_WBMP => 'imagecreatefromwbmp',
            IMAGETYPE_XBM => 'imagecreatefromwxbm',
            );
        
        if($user_functions){
            $functions[IMAGETYPE_BMP] = 'imagecreatefrombmp';
        }
        if(!$functions[$info[2]]){
            return false;
        }
        
        if(!function_exists($functions[$info[2]])){
            return false;
        }
        return $functions[$info[2]]($path);
    }
    //Sahibi anyexample.com
    function rgb2hex($r, $g=-1, $b=-1){
        if (is_array($r) && sizeof($r) == 3)
        list($r, $g, $b) = $r;
        $r = intval($r); $g = intval($g);
        $b = intval($b);
        $r = dechex($r<0?0:($r>255?255:$r));
        $g = dechex($g<0?0:($g>255?255:$g));
        $b = dechex($b<0?0:($b>255?255:$b));
        $color = (strlen($r) < 2?'0':'').$r;
        $color .= (strlen($g) < 2?'0':'').$g;
        $color .= (strlen($b) < 2?'0':'').$b;
        return '#'.$color;
    }
    //resim dosyası
    $dosya = "asd.jpg";
    //yukardaki fonksiyon çağrılan dosya tipine göre gd kütüphanesinden gereken fonksiyonu çağırır
    $resim = imagecreatefromfile($dosya);
     //yükseklik
    for( $x=1; $x<=100; $x++ ){
     //genişlik
    	for( $y=1; $y<=100; $y++ ){
    	 //kordinattaki pikselden renk seçimi
    		$pikselsec = imagecolorat($resim, $x, $y);
    		 //renkleri kırmızı,yeşil,mavi olarak ayıklar arraya atar
    		$renk = imagecolorsforindex($resim, $pikselsec);
    		 //$renk arrayından dönen rgb renk kodunu html düzeninde kullanılan hex koduna çevirir
    		echo rgb2hex($renk['red'],$renk['green'],$renk['blue']);
    		echo "<br />";
    }
    }
  • 16-04-2013, 10:16:13
    #6
    Yok ödev falan değil fatih yapmak istediğim olayı anladın her dive bastırılacak arka plan rengi olarak bir nevi.

    Deimosx bunu deneyeceğim bakalım