Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z ImageColorAt
Forum PHP.pl > Forum > PHP
harold82
Skrypt generujacy token odmawia wspolpracy po dodaniu do niego funkcji 
ImageColorAt.
Dzialanie skryptu polega na stworzeniu obrazka i wstawieniu do niego lini, elips
i napisu.
Pisze algrytm rozmywajacy obrazek w celu utrudnienia zycia bootom, ale wlasnie j
k tylko
 wstawie do kodu ImageColorAt to przestaje dzialac w ogole!
bigZbig
Wiesz w tym bloku kodu moglbys faktycznie wstawic fragment kodu zamiast samego tekstu, ktory nie informujo o niczym poza tym, ze probujesz bezskutecznie uzyc funkcji ImageColorAt.
harold82
  1. <?php
  2.  $czcionki= array('times.ttf', 'comic.ttf');
  3.  header("Content-type: image/gif");
  4.  $obraz = ImageCreate(200, 100); 
  5.  
  6.  $kolor = ImageColorAllocate($obraz, 255, 255, 255); 
  7.  ImageFilledRectangle($obraz, 0, 0, 200, 200, $kolor); 
  8.  ImageFilledArc($obraz, 25, 25, 40, 40, 180, 360, $kolor, 1);
  9.  
  10. for($i = 0; $i < 255; $i++) {
  11. $color = imagecolorallocate($obraz, 90, 170, rand(200,255));
  12. imageline($obraz, 0, rand(0,100),200,rand(0,100), $color); }
  13.  
  14. //tutaj wstawiam ImageColorAt
  15.  
  16. Imagegif($obraz);
  17. ImageDestroy($obraz);
  18.  ?>


Obrazek jak obrazek (jest to uproszczona wersja). Wszystko dziala untill nie probuje pobrac indeksu koloru jakiegos pixela. Funkcje uzywam z parametrami:

ImageColorAt ($obraz, $x, $y);

Po wstawieniu funkcji (zmienne istnieja!) skrypt w ogole nie wyswietla obrazka!!!
bigZbig
Wstawiłem linijkę:
  1. <?php $rgb = ImageColorAt ($obraz, 100, 100); ?>

we wskazanym przez Ciebie miejscu i działa. Jesteś pewien, że wartości zmiennych $x i $y istnieją, i że zawierają się w obrazku?
harold82
Rzeczywiscie dziala!! Nie mam pojecia co bylo nie tak!!
Mam taki jeszcze mini-problem, a w zasadzie nie problem tylko luke w informacjach!
Nie moge nigdzie znalezc funkcji do zmiany koloru piksela. Mozna niby prostokat wstawic (taki z jednego piksela) ale skrypt i tak do wydajnych nie nalezy!!
Prosze o informacje, sugestie itd jednoczesnie dziekuje za cierpliwosc smile.gif

A kod na rozmycie obrazka narazie wyglada tak:

  1. <?php
  2. $red = 0; $green = 0; $blue = 0;
  3. for($x = 2; $x <200; $x=$x+2) { // petla przechodzaca przez kolejne piksele
  4.  for ($y = 2; $y < 100; $y=$y+2) {
  5.  
  6. for($xx= -1; $xx < 2; $xx++) { // piksele w promieniu 1 
  7.  for($yy= -1; $yy <2; $yy++) {
  8. $rgb = ImageColorAt ($obraz, ($x+$xx), ($y+$yy);
  9.  $kolor_RGB = ImageColorsForIndex($obraz, $rgb);
  10.  $red += $kolor_RGB['red'];
  11. $green += $kolor_RGB['green'];
  12.  $blue += $kolor_RGB['blue']; }}
  13. //zmien kolor piksela $x,$y na ($red/9),($green/9),(blue/9)  
  14.  
  15. }}
  16. ?>




Jest problem sad.gif bo nie zczytuje kolorow z tablicy i zawsze wychodzi bialy
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.