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?
GD Kütüphanesine hakim olanlar
5
●351
- 15-04-2013, 16:39:21Kimlik doğrulama veya yönetimden onay bekliyor.Çok enteresan bir soru. Çözümü burada da paylaşırsanız sevinirim.
- 15-04-2013, 18:40:15ü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
<?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 />"; } }