Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak uzyskać 256 kolorów
php programmer
post 18.04.2007, 11:11:39
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 18.04.2007, 12:00:10
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


--------------------
Co tu napisać mam??
Go to the top of the page
+Quote Post
.radex
post 18.04.2007, 12:01:27
Post #3





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

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


a co to jest D ?


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
Kaiba Ziom
post 18.04.2007, 12:02:29
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 .


--------------------
Co tu napisać mam??
Go to the top of the page
+Quote Post
nospor
post 18.04.2007, 13:15:18
Post #5





Grupa: Moderatorzy
Postów: 36 557
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 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 tongue.gif. Na kolorach sie nie znasz i tyle 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. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
php programmer
post 18.04.2007, 13:18:13
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 18.04.2007, 13:21:13
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 18.04.2007, 13:25:07
Post #8





Grupa: Moderatorzy
Postów: 36 557
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 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 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 smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
php programmer
post 18.04.2007, 13:28:59
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 18.04.2007, 13:41:18
Post #10





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




Cytat
Rozwiąznie js'owe

@Bendi napstrykales tych kolorow. 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 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ą winksmiley.jpg drugi ma mniejszy zakres kolorow. w pierwszym masz ciut wiecej


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 19.07.2025 - 07:51