Podstawy PHP i MySQL
Temat 13 - Wstęp do grafiki
Powrót do spisu tematów


W tym rozdziale:

  1. Dynamicznie tworzenie obrazów
Rozpoczęcie tworzenia dynamicznych rysunków

PHP przy tworzeniu dynamicznych obrazów obsćuguje dwa formaty graficzne: jpg i png.
Chcąc tworzyć dynamiczne rysunki, należy przesćać nagćówek graficzny do przeglądarki przed wszystkimi innymi informacjami (podobnie jak przy cookies, funkcja setcookie byća wysyłana jako pierwsza). Robimy to za pomocć funkcji Header określając równocześnie format tworzonej grafiki (jpg lub png).

<ćphp
Header("Content-type: image/jpg");
ć>

Po tej wstępnej informacji tworzymy miejsce zarezerwowane na obraz oraz zaczep do niego. Służy do tego funkcja imagecreate(). Posiada ona dwa parametry: wysokość i szerokość mierzone w pikselach:

<ćphp
Header("Content-type: image/jpg");
$rysunek=imagecreate(200,200);
ć>

Tak utworzone miejsce niczego jeszcze nie przedstawia. Możemy jednak próbować wysłać je do przeglądarki z prośbą o wyświetlenie. W tym celu zastosujemy funkcję imageJPEG(); (lub PNG).

<ćphp
Header("Content-type: image/jpg");
$rysunek=imagecreate(200,200);
imageJPEG($rysunek);
ć>

ćwiczenie 13_01 - Określenie wymiarów obszaru graficznego

  1. Przed uruchomieniem skryptu należy odpowiednio skonfigurować interpreter PHP (patrz dodatek 1)
  2. Należy umieścić na swoim koncie WWW pliki 13_01.php i 13_01a.php (do pobrania tutaj 13_01.zip)
  3. Należy uruchomić plik 13_01.php (przez http).
  4. Należy zwrócić uwagę na sposób wywołania grafiki.
  5. Efektem działania skryptu z tego ćwiczenia powinno być wyświetlenie obszaru graficznego (bez grafiki).

Wypełnienie kolorem obszaru graficznego

Były to funkcje inicjujące, teraz spróbujmy rysować.
Wywołamy obszar graficzny wypełniony danym kolorem

<ćphp
header("Content-type: image/png");
$rysunek=imagecreate(200,200);
$zielony=imagecolorallocate($rysunek, 0, 255, 0);
$czerwony=imagecolorallocate($rysunek, 255, 0, 0);
imagefill($rysunek, 0, 0, $zielony);
imagepng($rysunek);
ć>

imagecolorallocate - tworzy kolor dla danego rysunku, stąd wykorzystany zaczep. Kolor jest tworzony w standardzie RGB przy podaniu jego wartości w układzie dziesiętnym (liczby od 0 do 255).
imagefill - określa wypełnienie danego rysunku (zaczep), od punktu o podanych współrzędnych wymienionym kolorem.

ćwiczenie 13_02 - Wypełnienie kolorem obszaru graficznego

  1. Należy umieścić na swoim koncie WWW pliki 13_02.php i 13_02a.php (do pobrania tutaj 13_02.zip)
  2. Należy uruchomić plik 13_02.php (przez http)
  3. Należy zmieniać parametry wykorzystanych funkcji i zaobserwować zachodzące zmiany w wygenerowanym rysunku.

Rysowanie elipsy lub jej wycinka

Kolejna funkcja graficzna imagearc($zaczep, $srodek_x, $srodek_y, $szer, $wys, $pocz_kata, $kon_kata, $kolor); rysuje elipsę, lub jej wycinek.

<ćphp
header("Content-type: image/png");
$rysunek=imagecreate(200,200);
$zielony=imagecolorallocate($rysunek, 0, 255, 0);
$czerwony=imagecolorallocate($rysunek, 255, 0, 0);
imagefill($rysunek, 0, 0, $zielony);

$sx=100;
$sy=100;
$szer=100;
$wys=50;
$pocz_kata=0;
$kon_kata=360;

imagearc($rysunek, $sx, $sy, $szer, $wys, $pocz_kata, $kon_kata, $czerwony);

imagepng($rysunek);
ć>

ćwiczenie 13_03 - Rysowanie elipsy lub jej wycinka

  1. Należy umieścić na swoim koncie WWW pliki 13_03.php i 13_03a.php (do pobrania tutaj 13_03.zip)
  2. Należy uruchomić plik 13_03.php (przez http)
  3. Należy zmieniać parametry wykorzystanych funkcji i zaobserwować zachodzące zmiany w wygenerowanym rysunku.

Zadanie 15 - Rysowanie losowych kół

  1. Należy umieścić na swoim koncie WWW plik zadanie15.php
  2. Należy zobaczyć działanie skryptu (tutaj - wymagane połączenie z Internetem). Stronę należy kilka razy odświeżyć (uwaga - może wystąpić opóźnienie odświeżenia).
  3. Należy przygotować skrypt, który będzie generował koła o losowym kolorze wypełnienia oraz losowym położeniu wspólnego środka.

Do zapamiętania

  1. Zmienne deklarowane poza funkcją nie są dostępne w jej wnętrzu i odwrotnie, deklarowane wewnątrz funkcji nie są dostępne w całym skrypcie.

 


Powrót do spisu tematów