Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Czytanie kolorow pixeli z obrazka
rossco
post 3.04.2007, 13:16:35
Post #1





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 17.02.2007

Ostrzeżenie: (0%)
-----


Witam wszystkich

Napisalem kawalek kodu ktory zczytuje wszystkie kolory z obrazka i drukuje je na stronie w postaci tablicy z kolorami RGB. Chcial bym zeby mozna bylo kolory indexow zapisywac do pliku i okreslac jaki kolor w danym obrazku przewaza.
Z gory dzieki za pomoc

Pozdrawiam
  1. <?php
  2.  
  3.  
  4. $im = imagecreatefrompng('im2.png');
  5.  
  6.  
  7. $szerokosc=imagesx($im);
  8. $wysokosc=imagesy($im);
  9. for ($sze=1; $sze<=$szerokosc; $sze++) {
  10.  for ($wys=1; $wys<=$wysokosc; $wys++) {
  11. $color_index = imagecolorat($im, $szer, $wys);
  12.  
  13.  
  14. $color_tran = imagecolorsforindex($im, $color_index);
  15.  
  16.  
  17. print_r($color_tran);
  18. }
  19.  
  20. }
  21. ?>



-------------------------
uprasza się o poprawne
używanie BBCode
tym razem poprawiłem
~Cienki1980
Go to the top of the page
+Quote Post
Wykrywacz
post 3.04.2007, 13:19:57
Post #2





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


1. Użyj BBCodu
2. Rozumiem że chodzi ci o zapisanie wyniku do pliku? Czy źle rozumiem? jak dobrze
http://php.net.pl/manual/pl/function.fopen.php
http://php.net.pl/manual/pl/function.fwrite.php
http://php.net.pl/manual/pl/function.fclose.php

jak źle rozumiem, to rozwiń bo tylko to udało mi się wywnioskować. smile.gif
Go to the top of the page
+Quote Post
rossco
post 3.04.2007, 13:50:05
Post #3





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 17.02.2007

Ostrzeżenie: (0%)
-----


Chodzi mi o to zeby mozna bylo dane o kolorach porownac i okreslic np procentowo ktory kolor w obrazku przewaza
Go to the top of the page
+Quote Post
crash
post 4.04.2007, 08:53:45
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


Chwila nudy i niezbyt wymagającego myślenia:
  1. <?php
  2.  
  3. $img = imagecreatefromjpeg( './img.jpg' );
  4.  
  5. $sX = imagesx( $img );
  6. $sY = imagesy( $img );
  7.  
  8. $colors = array();
  9.  
  10. for( $x = 1; $x <= $sX; $x++ )
  11. {
  12.  for( $y = 1; $y <= $sY; $y++ )
  13.  {
  14. $color = imagecolorat( $img, $x, $y );
  15.  
  16. if( array_key_exists( (int)$color, $colors ) )
  17. {
  18.  $colors[ $color ]++;
  19. }
  20. else
  21. {
  22.  $colors[ $color ] = 1;
  23. }
  24.  }
  25. }
  26.  
  27. arsort( $colors );
  28.  
  29. $colorsCount = count( $colors );
  30.  
  31. foreach( array_slice( $colors, 0, 10, true ) as $colorIdx => $count )
  32. {
  33.  $color = imagecolorsforindex( $img, $colorIdx );
  34.  
  35.  echo '<span style="color: rgb(' . $color[ 'red' ] . ',' . $color[ 'green' ] . ',' . $color[ 'blue' ] . ');"><b>&bull;</b> ' . $colorIdx . ': ' . $count . ' razy (' . round( $count / $colorsCount * 100, 2 ) . '%)</li><br/>';
  36. }
  37.  
  38. imagedestroy( $img );
  39.  
  40. ?>


--------------------
Go to the top of the page
+Quote Post
rossco
post 4.04.2007, 09:40:49
Post #5





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 17.02.2007

Ostrzeżenie: (0%)
-----


Dzieki ale co snie moge sobie poradzic wywala mi blad

Warning: Wrong parameter count for array_slice()

Warning: Invalid argument supplied for foreach()
Go to the top of the page
+Quote Post
crash
post 4.04.2007, 14:45:51
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


array_slice" title="Zobacz w manualu PHP" target="_manual - funkcja ta w PHP w wersji starszej niż 5.0.2 resetowała klucze w tablicach asocjacyjnych. Pewnie używasz starszej wersji PHP która nie obsługuje 4-go argumentu funkcji. Zmień array_slice( $colors, 0, 10, true ) na $colors w pętli foreach, ale nie będzie to najlepsze rozwiązanie w przypadku dużej ilości kolorów. No ale - fundamenty już masz, teraz Twoja kolej na włączenie myślenia!


--------------------
Go to the top of the page
+Quote Post
rossco
post 5.04.2007, 08:56:55
Post #7





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 17.02.2007

Ostrzeżenie: (0%)
-----


Dzieki wielkie Crash exclamation.gif guitar.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 10:27