Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak uzyskać 256 kolorów
php programmer
post
Post #1





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


Trochę dziwne pytanie: Jak uzyskać 256 kolorów.

Wyjaśniam o co chodzi:

jak zrobię potrójną pętlę
  1. <?php
  2. for ($R=0; $R<=15; $R++)
  3. for ($G=;$G<=15; $G++)
  4. for ($B=;$B<=15; $B++)
  5. $color = '#'.dechex($R).dechex($G).dechex($B);
  6. ?>


To mam aż 16*16*16 = 4096 kolorów
a chciałbym uzyskać tylko 256, oczywiscie równomiernie rozłozone
Go to the top of the page
+Quote Post
Kaiba Ziom
post
Post #2





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 25.10.2006
Skąd: Londyn

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


Nie wiem czy zrozumiałem ale:
  1. <?php
  2. for ($R=0; $R<=4; $R++)
  3. for ($G=;$G<=4; $G++)
  4. for ($B=;$B<=4; $B++)
  5. for ($D=;$D<=4; $D++)
  6. $color = '#'.dechex($R).dechex($G).dechex($B).dechex($D);
  7. ?>

:roll2:

Jeszcze wymyśliłem takie:
[php]
<?php
for ($R=0; $R<=8; $R++)
for ($G=0 ;$G<=8; $G++)
for ($B=0 ;$B<=4; $B++)
$color = '#'.dechex($R).dechex($G).dechex($B);
?>
Ale to nie równomiernie .

Ten post edytował Kaiba Ziom 18.04.2007, 12:08:13
Go to the top of the page
+Quote Post
.radex
post
Post #3





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


a co to jest D ?
Go to the top of the page
+Quote Post
Kaiba Ziom
post
Post #4





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 25.10.2006
Skąd: Londyn

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


Nie wiem :F . PHP dopiero się uczę . Jak umiałem to zrobiłem .
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




pasi tak:
  1. <?php
  2. $r = 0; $g = 0; $b = 0;
  3. for ($i=0;$i <= 255;$i++) {
  4. if ($i<51)
  5. $r += 5;
  6. elseif ($i<102){
  7. $r = 255;
  8. $g += 5;
  9. }
  10. elseif ($i<153){
  11. $r -= 5;
  12. $g = 255;
  13. }
  14. elseif ($i<204){
  15. $r = 0;
  16. $g -= 5;
  17. $b += 5;
  18. }
  19. elseif ($i<255){
  20. $r += 5;
  21. $g += 5;
  22. $b = 255;
  23. } else {
  24. $r = 255;
  25. $g = 255;
  26. $b = 255;
  27. }
  28. $color = '#'.sprintf('%02s',dechex($r)).sprintf('%02s',dechex($g)).sprintf('%02s',dechex($b));
  29. echo '<div style="background-color:'.$color.';width:100px;">'.$i. ' - ' .$color.'</div>';
  30. }
  31. ?>

?

Albo tak:
  1. <?php
  2. $r = 0; $g = 0; $b = 0;
  3. for ($i=0;$i <= 255;$i++) {
  4. if ($i<85)
  5. $r += 3;
  6. elseif ($i<170){
  7. $r = 255;
  8. $g += 3;
  9. }
  10. elseif ($i<255){
  11. $r = 255;
  12. $g = 255;
  13. $b += 3;
  14. } else {
  15. $r = 255;
  16. $g = 255;
  17. $b = 255;
  18. }
  19. $color = '#'.sprintf('%02s',dechex($r)).sprintf('%02s',dechex($g)).sprintf('%02s',dechex($b));
  20. echo '<div style="background-color:'.$color.';width:100px;">'.$i. ' - ' .$color.'</div>';
  21. }
  22. ?>

?

Pierwszy wydaje sie ladniejszy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Cytat
Nie wiem :F . PHP dopiero się uczę . Jak umiałem to zrobiłem .
RGB nie ma zwiazku z PHP wiec i D tym bardziej (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) . Na kolorach sie nie znasz i tyle (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

edit:
i jeszcze cos na Twoj styl:
  1. <?php
  2. $i = 0;
  3. for ($R=0; $R<=7; $R++)
  4. for ($G=;$G<=7; $G++)
  5. for ($B=;$B<=3; $B++){
  6. if ($R == 7 && $G==&& $B==3)
  7. $color = '#fff';
  8. else
  9. $color = '#'.dechex($R*2).dechex($G*2).dechex($B*4);
  10. echo '<div style="background-color:'.$color.';width:100px;">'.$i.' - '.$color.'</div>';
  11. $i++;
  12. }
  13. ?>
Go to the top of the page
+Quote Post
php programmer
post
Post #6





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


Genialne...
Chodź widzę kod, nie rozumiem zasady działania.
W jednym zdaniu to na czym polega myk?

Ten post edytował php programmer 18.04.2007, 13:18:30
Go to the top of the page
+Quote Post
bendi
post
Post #7





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


Na tym, że korzystasz z systemu ósemkowego i zamieniasz na 16-tkowy, prawda nospor?

A tak btw czy te zamiany sa faktycznie niezbędne - chodzi mi o ostatnie rozwiazanie, przeciez w stylach mozesz zdefiniowac kolor w ósemkowo także.

Rozwiąznie js'owe

Ten post edytował bendi 18.04.2007, 13:21:58
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Genialne...
Chodź widzę kod, nie rozumiem zasady działania.
W jednym zdaniu to na czym polega myk?

A o ktorym kodzie mowisz? Bo dwa pierwsze znaczaco roznią sie od trzeciego i nie wiem ktory tlumaczyc (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Cytat
Na tym, że korzystasz z systemu ósemkowego i zamieniasz na 16-tkowy, prawda nospor?
Mowisz o ostatnim? W sumie na to prawie wyszlo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Cytat
A tak btw czy te zamiany sa faktycznie niezbędne - chodzi mi o ostatnie rozwiazanie, przeciez w stylach mozesz zdefiniowac kolor w ósemkowo także.
Mozna, ale tak z rospedu sie pisalo i tak wyszlo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
php programmer
post
Post #9





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


Ach to nawet nie zauważyłem tego trzeciego,
dwa pierwsze wydają się podobne,
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Rozwiąznie js'owe

@Bendi napstrykales tych kolorow. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Standardem bodajże jest uzywanie tzw. bezpiecznych webowych kolorow, ktorych jest 216:
  1. <?php
  2. function webCol($R){
  3. echo '<table>';
  4. for ($B=255;$B>=;$B-=51)
  5. {
  6. echo '<tr>';
  7. for ($G=255;$G>=;$G-=51)
  8. {
  9. $color = '#'.sprintf('%02s',dechex($R)).sprintf('%02s',dechex($G)).sprintf('%02s',dechex($B));
  10. echo '<td><div style="width:10px;height:10px;background-color:'.$color.'"></div></td>';
  11. }
  12. }
  13. echo '</table>';
  14. }
  15.  
  16. echo '<table><tr><td>';webCol(255);echo '</td>';
  17. echo '<td>';webCol(204);echo '</td>';
  18. echo '<td>';webCol(153);echo '</td></tr>';
  19. echo '<tr><td>';webCol(102);echo '</td>';
  20. echo '<td>';webCol(51);echo '</td>';
  21. echo '<td>';webCol(0);echo '</td></tr></table>';
  22. ?>


@php programmer skoro chodzilo ci o te pierwsze, to jak widac, lece sobie od 0 do 255 i w zaleznosci w jakim zakresie liczbowym jestem to sobie zmieniam RGB (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Oczywiscie zeby taki efekt uzyskac musze plynnie zmieniac te wartosci, bez zadnych skokow

Cytat
dwa pierwsze wydają się podobne,
No tylko sie wydają (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) drugi ma mniejszy zakres kolorow. w pierwszym masz ciut wiecej
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 26.12.2025 - 22:45