Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Pętla wykonuje się tylko raz
Adrian1207
post 30.08.2007, 00:54:19
Post #1





Grupa: Zarejestrowani
Postów: 94
Pomógł: 10
Dołączył: 20.02.2007

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


Witam.
Mam pewien problem z pętlą, może na początek kod:
  1. <?php
  2. header("Content-type: image/jpeg");
  3. $im = imagecreatefromjpeg("banner.jpg");
  4. $width=imagesx($im);
  5. $height=imagesy($im);
  6. $sprw=1;
  7. $sprh=1;
  8. do{
  9. $rgb = imagecolorat($im, $sprw, $sprh);
  10. $r = ($rgb >> 16) & 0xFF;
  11. $g = ($rgb >> 8) & 0xFF;
  12. $b = $rgb & 0xFF;
  13. $rysunek=imagecreate(100,100);
  14. $idcolor=imagecolorallocate($rysunek,$r,$g,$b);
  15. $czarny=imagecolorallocate($rysunek,0,0,0);
  16. imagefill($rysunek,0,0,$czarny);
  17. $litera=A;
  18. $litsprw=$sprw+5;
  19. $litsprh=$sprh+5;
  20. imagestring($rysunek, 5, $litsprw, $litsprh, $litera, $idcolor);
  21. $sprw=$sprw+1;
  22. $sprh=$sprh+1;
  23. } while ($sprw==$width);
  24. imagejpeg($rysunek);
  25. ?>



Mam problem, ponieważ instrukcja w pętli zostaje wykonana tylko raz, a nie jak chcę żeby było, czyli aż do narysowania wszystkich liter w kolorach pikseli. Mam nadzieję że zrozumiecie o co w skrypcie chodzi, ma wyświetlać literę A jako piksel, czyli w jego kolorze i jego miejscu. Ale gdzieś zrobiłem błąd i pętla się wykonuje tylko raz, możecie ten błąd mi wskazać? A może w czym innym leży problem? Z góry dzięki za odpowiedź.

Pozdrawiam
Go to the top of the page
+Quote Post
nospor
post 30.08.2007, 06:10:30
Post #2





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




zobacz w manualu jak dziala do...while bo chyba nie zakumales.

  1. <?php
  2. while ($sprw==$width);
  3. ?>
petla bedzie dzialac, dopoki $sprw jest równe $width. A skoro $width nie zmienia się a zmienia się $sprw to raczej dlugo ten warunek nie bedzie spelniony winksmiley.jpg


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

"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
drPayton
post 30.08.2007, 08:22:35
Post #3





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


Oj długo, gdzieś około wieczności winksmiley.jpg
  1. <?php
  2. while ($sprw!=$width);
  3. ?>

Pewnie miało być winksmiley.jpg
Go to the top of the page
+Quote Post
Adrian1207
post 30.08.2007, 13:36:37
Post #4





Grupa: Zarejestrowani
Postów: 94
Pomógł: 10
Dołączył: 20.02.2007

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


Fakt, źle to zrobiłem i powinno cały czas się wykonywać, tylko dlaczego wykonuje się raz?

Zmianiłem na:
  1. <?php
  2. while ($sprw!=$width);
  3. ?>

Ale teraz ani razu się nie wykonuje, to znaczy nie ma tej litery w ogóle.

I przy okazji zapytam, co należy zrobić ze zmienną $idcolor żeby użyć tego koloru w kodzie html, czyli otrzymać 6cio znakowy kod np. #999999?
Go to the top of the page
+Quote Post
drPayton
post 30.08.2007, 14:42:39
Post #5





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


Cytat
Ale teraz ani razu się nie wykonuje

A to akurat niemożliwe, bo pętla do...while ma to do siebie, że bezwzględnie zawsze wykona się przynajmniej raz. Skoro twierdzisz, że nie, to znaczy jedynie że nie widzisz efektu, więc błąd gdzie indziej masz...
Sprawdź jaką wartość na początku ma $width...

Ten post edytował drPayton 30.08.2007, 14:44:35
Go to the top of the page
+Quote Post
Adrian1207
post 30.08.2007, 17:19:59
Post #6





Grupa: Zarejestrowani
Postów: 94
Pomógł: 10
Dołączył: 20.02.2007

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


Nie wiem, coś kombinowałem ale dalej nie wychodzi, teraz potrzeba mi ten kolor ze zmiennej $idcolor użyć w html, tylko nie wiem jak to zrobić. Bo chcę inaczej rozwiązać tą pętlę ale tego koloru nie wiem jak użyć. Może ktoś powiedzieć?
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: 24.06.2025 - 04:00