środa, 27 maja 2015

[PHP][GD2] Rysujemy podstawowe kształty

TRUE
5828360592528357317
Za pomocą biblioteki GD możemy nie tylko rysować prostokąty, lecz tworzyć o wiele bardziej złożone kształty, rysować linie, czy dodawać tekst. Wszystko sprowadza się do podania odpowiednich współrzędnych dla funkcji rysujących, a następnie wygenerowania danego kształtu i wypełnienia go odpowiednim kolorem. Warto poznać kilka podstawowych funkcji, takich jak rysowanie okręgów, czy elips, lub też prowadzenia linii z punku a do punktu.

W tej krótkiej części przyjrzymy się najczęściej używanym, podstawowym funkcjom służącym do rysowania na obrazku standardowych kształtów. W poprzedniej części, w podstawach narysowaliśmy prosty prostokąt, tym razem na początek narysujmy sobie elipsę. Wróćmy jednak jeszcze na moment do rysowania wypełnionego prostokąta z poprzedniej części. Użyliśmy tam funkcji:

  1. imagefilledrectangle()


Z wypełnieniem i bez - filled...

Warto wiedzieć, że funkcja ta (jak i jej podobne) posiada także swój odpowiednik rysujący taki sam prostokąt, ale bez wypełniania go kolorem. Funkcje rysujące bez wypełniania kolorem nie zawierają w nazwie filled, czyli z ang. wypełnienie.
I tak, za pomocą funkcji:

  1. imagerectangle()

narysujemy sam obrys prostokąta, popatrzmy:

  1. <?php
  2.  
  3. $width = 400;
  4.  
  5. $height = 300;
  6.  
  7. $image = imagecreatetruecolor($width, $height);
  8.  
  9. // stworzyliśmy pusty obrazek o szerokości 400px i wysokości 300px
  10.  
  11.  
  12.  
  13. $black = imagecolorallocate($image, 0, 0, 0);
  14.  
  15. // zdefiniowaliśmy kolor czarny dla tła
  16.  
  17.  
  18.  
  19. $red = imagecolorallocate($image, 255, 0, 0);
  20.  
  21. // zdefiniowaliśmy kolor czerwony i zapisaliśmy go do zmiennej $red
  22.  
  23.  
  24.  
  25. imagefill($image, 0, 0, $black);
  26.  
  27. // wypełniliśmy obszar 400x300px naszego obrazka kolorem pobranym ze zmiennej $black
  28.  
  29.  
  30.  
  31. imagerectangle($image, 20, 20, 100, 120, $red);
  32.  
  33. // wypełniliśmy obszar od 20-100px w poziomie i 20-120px w pionie
  34.  
  35.  
  36.  
  37. header("Content-type: image/png");
  38.  
  39. // definiujemy nagłówek z mimetype
  40.  
  41.  
  42.  
  43. imagepng($image);
  44.  
  45. // generujemy obrazek PNG
  46.  
  47.  
  48.  
  49. imagedestroy($image);
  50.  
  51. // zwalniamy uchwyt do obrazka
  52.  
  53. ?>
  54.  

Wynikiem jest niewypełniony prostokąt, w tym przypadku wartość koloru została wykorzystana do określenia koloru obrysu.



Analogicznie będzie z wszystkimi pozostałymi funkcjami jakie tutaj poznamy - wszystkie one posiadają wersję wypełniające tło i niewypełniające go.

Rysujemy elipsę - imagefilledellipse()

Narysujmy teraz elipsę, albo nawet dwie, lub trzy. Służy do tego funkcja:

  1. imagefilledellipse($image, $cx, $cy, $width, $height, $color);

gdzie:

  • $image - uchwyt naszego obrazka
  • $cx = punkt środkowy elipsy w osi X
  • $cy = punkt środkowy elipsy w osi Y
  • $width - szerokość elipsy
  • $height - wysokość elipsy 
  • $color - kolor wypełnienia

Przygotujmy dodatkowe kolory, tym razem zielony i biały i narysujmy trzy elipsy, z czego elipsa zielona będzie o kształcie koła (taka sama szerokość i wysokość), a biała nie będzie posiadac wypełnienia:


  1. <?php
  2.  
  3. $width = 400;
  4.  
  5. $height = 300;
  6.  
  7. $image = imagecreatetruecolor($width, $height);
  8.  
  9. // stworzyliśmy pusty obrazek o szerokości 400px i wysokości 300px
  10.  
  11.  
  12.  
  13. $black = imagecolorallocate($image, 0, 0, 0);
  14.  
  15. // zdefiniowaliśmy kolor czarny dla tła
  16.  
  17.  
  18.  
  19. $red = imagecolorallocate($image, 255, 0, 0);
  20.  
  21. // zdefiniowaliśmy kolor czerwony i zapisaliśmy go do zmiennej $red
  22.  
  23.  
  24.  
  25. $white = imagecolorallocate($image, 255, 255, 255);
  26.  
  27. // zdefiniowaliśmy kolor czerwony i zapisaliśmy go do zmiennej $red
  28.  
  29.  
  30.  
  31. $green = imagecolorallocate($image, 0, 255, 0);
  32.  
  33. // zdefiniowaliśmy kolor czerwony i zapisaliśmy go do zmiennej $green
  34.  
  35.  
  36.  
  37. imagefill($image, 0, 0, $black);
  38.  
  39. // wypełniliśmy obszar 400x300px naszego obrazka kolorem pobranym ze zmiennej $black
  40.  
  41.  
  42.  
  43. imagefilledellipse($image, 200, 200, 100, 120, $red);
  44.  
  45. // #1 rysujemy pierwszą elipsę (czerwoną), o środku w punkcie 200x200 i szerokości 100x120px
  46.  
  47.  
  48.  
  49. imagefilledellipse($image, 300, 80, 100, 100, $green);
  50.  
  51. // #2 rysujemy drugą elipsę (zieloną), o środku w punkcie 300x80 i szerokości 100x100px
  52.  
  53.  
  54.  
  55. imageellipse($image, 50, 50, 40, 40, $white);
  56.  
  57. // #3 rysujemy trzecią elipsę (białą), bez wypełnienia o środku w punkcie 50x50 i szerokości 40x40px
  58.  
  59.  
  60.  
  61. header("Content-type: image/png");
  62.  
  63. // definiujemy nagłówek z mimetype
  64.  
  65.  
  66.  
  67. imagepng($image);
  68.  
  69. // generujemy obrazek PNG
  70.  
  71.  
  72.  
  73. imagedestroy($image);
  74.  
  75. // zwalniamy uchwyt do obrazka
  76.  
  77. ?>
  78.  


Wynik:

Jak widać rysowanie elipsy jest zbliżone do rysowania prostokąta, z tym, że tutaj podajemy punkty środkowe i szerokość/wysokość zamiast współrzędnych początkowych i końcowych.

Rysujemy linie - imageline()

Poprowadzimy teraz linię, którą rysuje się za pomocą następującej funkcji:

  1. imageline($image, $x1, $y1, $x2, $y2, $color);

gdzie:

  • $image - uchwyt do obrazka
  • $x1 - punkt początkowy na osi X
  • $y1- punkt początkowy na osi Y
  • $x2 - punkt końcowy na osi X
  • $y2- punkt końcowy na osi Y
  • $color - kolor linii

Jak widać skadnia identyczna jak podczas rysowania prostokąta.

Naszą linię poprowadźmy od środka czerwonej elipsy do środka elipsy zielonej, a więc podawając jako x1 i y1 współrzędne środka czerwonej elipsy, a jako x2 i y2 współrzędne środka elipsy zielonej.
Nasza linia będzie niebieska, a więc utworzymy kolejny kolor, tym razem niebieski.


  1. <?php
  2.  
  3. $width = 400;
  4.  
  5. $height = 300;
  6.  
  7. $image = imagecreatetruecolor($width, $height);
  8.  
  9. // stworzyliśmy pusty obrazek o szerokości 400px i wysokości 300px
  10.  
  11.  
  12.  
  13. $black = imagecolorallocate($image, 0, 0, 0);
  14.  
  15. // zdefiniowaliśmy kolor czarny dla tła
  16.  
  17.  
  18.  
  19. $red = imagecolorallocate($image, 255, 0, 0);
  20.  
  21. // zdefiniowaliśmy kolor czerwony i zapisaliśmy go do zmiennej $red
  22.  
  23.  
  24.  
  25. $white = imagecolorallocate($image, 255, 255, 255);
  26.  
  27. // zdefiniowaliśmy kolor biały i zapisaliśmy go do zmiennej $white
  28.  
  29.  
  30.  
  31. $green = imagecolorallocate($image, 0, 255, 0);
  32.  
  33. // zdefiniowaliśmy kolor zielony i zapisaliśmy go do zmiennej $green
  34.  
  35.  
  36.  
  37. $blue = imagecolorallocate($image, 0, 0, 255);
  38.  
  39. // zdefiniowaliśmy kolor niebieski zapisaliśmy go do zmiennej $blue
  40.  
  41.  
  42.  
  43. imagefill($image, 0, 0, $black);
  44.  
  45. // wypełniliśmy obszar 400x300px naszego obrazka kolorem pobranym ze zmiennej $black
  46.  
  47.  
  48.  
  49. imagefilledellipse($image, 200, 200, 100, 120, $red);
  50.  
  51. // #1 rysujemy pierwszą elipsę (czerwoną), o środku w punkcie 200x200 i szerokości 100x120px
  52.  
  53.  
  54.  
  55. imagefilledellipse($image, 300, 80, 100, 100, $green);
  56.  
  57. // #2 rysujemy drugą elipsę (zieloną), o środku w punkcie 300x80 i szerokości 100x100px
  58.  
  59.  
  60.  
  61. imageellipse($image, 50, 50, 40, 40, $white);
  62.  
  63. // #3 rysujemy trzecią elipsę (białą), bez wypełnienia o środku w punkcie 50x50 i szerokości 40x40px
  64.  
  65.  
  66.  
  67. imageline($image, 200, 200, 300, 80, $blue);
  68.  
  69. // #4 rysujemy linię ze środka elipsy czerwonej (200, 200) do środka elipsy zielonej (300, 80)
  70.  
  71.  
  72.  
  73. header("Content-type: image/png");
  74.  
  75. // definiujemy nagłówek z mimetype
  76.  
  77.  
  78.  
  79. imagepng($image);
  80.  
  81. // generujemy obrazek PNG
  82.  
  83.  
  84.  
  85. imagedestroy($image);
  86.  
  87. // zwalniamy uchwyt do obrazka
  88.  
  89. ?>
  90.  


Wynik:


Prawda, że proste?

Rysujemy poligony - imagefilledpolygon()

Narysujmy teraz poligon. Tutaj jest ciekawa sprawa, ponieważ w tym przypadku możemy podać dowolną ilość punktów, a robimy to za pomocą tablicy. Popatrzmy jak wygląda składnia funkcji rysującej poligon złożony z dowolnej ilości punktów:

  1. imagefilledpolygon($image, $tablica_współrzędnych_punktów, $ilość_punktów, $kolor)

gdzie:

$image - uchwyt do obrazka
$tablica_współrzędnych_punktów - tablica ze wszystkimi współrzędnymi,np.

  1. array(
  2.  
  3. 10, 10, //punkt pierwszy x, y
  4.  
  5. 10,30, //punkt drugi x, y
  6.  
  7. 30,80  //punkt trzeci x, y
  8.  
  9. )
  10.  

$ilość_punktów - musi odpowiadać ilości punktów podanych w tablicy
$kolor - kolor wypełnienia

Zrezygnujmy z naszej linii i narysujmy tym razem poligon składający się z trzech punktów, które będą środkami naszych wszystkich trzech okręgów.
Żeby tym razem się nie powtarzać z wartościami, współrzędne dla okręgów (i naszego poligonu) określimy sobie w zmiennych $cx1, $cx2...itd

  1. <?php
  2.  
  3. $width = 400;
  4.  
  5. $height = 300;
  6.  
  7. $image = imagecreatetruecolor($width, $height);
  8.  
  9. // stworzyliśmy pusty obrazek o szerokości 400px i wysokości 300px
  10.  
  11.  
  12.  
  13. // współrzędne środków okręgów:
  14.  
  15. $cx1 = 200; // czerwony X
  16.  
  17. $cy1 = 200; // czerwony Y
  18.  
  19.  
  20.  
  21. $cx2 = 300; // zielony X
  22.  
  23. $cy2 = 80; // zielony Y
  24.  
  25.  
  26.  
  27. $cx3 = 50; // biały X
  28.  
  29. $cy3 = 50; // biały Y
  30.  
  31.  
  32.  
  33.  
  34.  
  35. // punkty dla poligonu:
  36.  
  37. $polygon_points = array(
  38.  
  39. $cx1, $cy1,
  40.  
  41. $cx2, $cy2,
  42.  
  43. $cx3, $cy3
  44.  
  45. );
  46.  
  47.  
  48.  
  49. $black = imagecolorallocate($image, 0, 0, 0);
  50.  
  51. // zdefiniowaliśmy kolor czarny dla tła
  52.  
  53.  
  54.  
  55. $red = imagecolorallocate($image, 255, 0, 0);
  56.  
  57. // zdefiniowaliśmy kolor czerwony i zapisaliśmy go do zmiennej $red
  58.  
  59.  
  60.  
  61. $white = imagecolorallocate($image, 255, 255, 255);
  62.  
  63. // zdefiniowaliśmy kolor biały i zapisaliśmy go do zmiennej $white
  64.  
  65.  
  66.  
  67. $green = imagecolorallocate($image, 0, 255, 0);
  68.  
  69. // zdefiniowaliśmy kolor zielony i zapisaliśmy go do zmiennej $green
  70.  
  71.  
  72.  
  73. $blue = imagecolorallocate($image, 0, 0, 255);
  74.  
  75. // zdefiniowaliśmy kolor niebieski zapisaliśmy go do zmiennej $blue
  76.  
  77.  
  78.  
  79. imagefill($image, 0, 0, $black);
  80.  
  81. // wypełniliśmy obszar 400x300px naszego obrazka kolorem pobranym ze zmiennej $black
  82.  
  83.  
  84.  
  85. imagefilledellipse($image, $cx1, $cy1, 100, 120, $red);
  86.  
  87. // #1 rysujemy pierwszą elipsę (czerwoną), o środku w punkcie 200x200 i szerokości 100x120px
  88.  
  89.  
  90.  
  91. imagefilledellipse($image, $cx2, $cy2, 100, 100, $green);
  92.  
  93. // #2 rysujemy drugą elipsę (zieloną), o środku w punkcie 300x80 i szerokości 100x100px
  94.  
  95.  
  96.  
  97. imageellipse($image, $cx3, $cy3, 40, 40, $white);
  98.  
  99. // #3 rysujemy trzecią elipsę (białą), bez wypełnienia o środku w punkcie 50x50 i szerokości 40x40px
  100.  
  101.  
  102.  
  103. imagefilledpolygon($image, $polygon_points, 3, $blue);
  104.  
  105. // rysujemy polygon z tzrech punktów
  106.  
  107.  
  108.  
  109. header("Content-type: image/png");
  110.  
  111. // definiujemy nagłówek z mimetype
  112.  
  113.  
  114.  
  115. imagepng($image);
  116.  
  117. // generujemy obrazek PNG
  118.  
  119.  
  120.  
  121. imagedestroy($image);
  122.  
  123. // zwalniamy uchwyt do obrazka
  124.  
  125. ?>
  126.  


Oto wynik naszego działania:


Prawda, że proste?

Rysujemy wypełnienie kołowe - imagefilledarc()

Narysujmy teraz coś bardziej skomplikowanego - wypełnienie kątowe.
Stworzy nam to cząstkę okręgu opartą na zadanych kącie, co jest przydatne w generowaniu wykresów kołowych. Funkcja do tego służąca to:

  1. imagefilledarc($image, $cx, $cy, $width, $height, $start_angle, $end_angle, $color, $styl);

gdzie:

  • $image - uchwyt naszego obrazka
  • $cx = punkt środkowy elipsy w osi X
  • $cy = punkt środkowy elipsy w osi Y
  • $width - szerokość elipsy
  • $height - wysokość elipsy 
  • $start_angle - kąt początkowy (w stopniach) 
  • $end_angle - kąt końcowy (w stopniach) 
  • $color - kolor wypełnienia
  • $styl - określa sposób łączenia punktu początkowego z końcowym, możliwe parametry:
    IMG_ARC_PIE - łączenie kołowe
    IMG_ARC_CHORD - łączenie linią prostą
    IMG_ARC_NOFILL - bez wypełnienia
    IMG_ARC_EDGED - daje jedynie obrys całości.

Zrezygnujemy teraz z naszych elips i w ich miejsce narysujemy sobie kilka "arców"


  1. <?php
  2.  
  3. $width = 400;
  4.  
  5. $height = 300;
  6.  
  7. $image = imagecreatetruecolor($width, $height);
  8.  
  9. // stworzyliśmy pusty obrazek o szerokości 400px i wysokości 300px
  10.  
  11.  
  12.  
  13. // współrzędne środków okręgów:
  14.  
  15. $cx1 = 200; // czerwony X
  16.  
  17. $cy1 = 200; // czerwony Y
  18.  
  19.  
  20.  
  21. $cx2 = 300; // zielony X
  22.  
  23. $cy2 = 80; // zielony Y
  24.  
  25.  
  26.  
  27. $cx3 = 50; // biały X
  28.  
  29. $cy3 = 50; // biały Y
  30.  
  31.  
  32.  
  33.  
  34.  
  35. $black = imagecolorallocate($image, 0, 0, 0);
  36.  
  37. // zdefiniowaliśmy kolor czarny dla tła
  38.  
  39.  
  40.  
  41. $red = imagecolorallocate($image, 255, 0, 0);
  42.  
  43. // zdefiniowaliśmy kolor czerwony i zapisaliśmy go do zmiennej $red
  44.  
  45.  
  46.  
  47. $white = imagecolorallocate($image, 255, 255, 255);
  48.  
  49. // zdefiniowaliśmy kolor biały i zapisaliśmy go do zmiennej $white
  50.  
  51.  
  52.  
  53. $green = imagecolorallocate($image, 0, 255, 0);
  54.  
  55. // zdefiniowaliśmy kolor zielony i zapisaliśmy go do zmiennej $green
  56.  
  57.  
  58.  
  59. $blue = imagecolorallocate($image, 0, 0, 255);
  60.  
  61. // zdefiniowaliśmy kolor niebieski zapisaliśmy go do zmiennej $blue
  62.  
  63.  
  64.  
  65. imagefill($image, 0, 0, $black);
  66.  
  67. // wypełniliśmy obszar 400x300px naszego obrazka kolorem pobranym ze zmiennej $black
  68.  
  69.  
  70.  
  71. imagefilledarc($image, $cx1, $cy1, 100, 120, 0, 180, $red, IMG_ARC_PIE);
  72.  
  73. // #1 rysujemy wypełnienie koła (czerwone), o środku w punkcie 200x200 i szerokości 100x120px, zaczynając od kąta 0, do kąta 180
  74.  
  75.  
  76.  
  77. imagefilledarc($image, $cx2, $cy2, 100, 100, 0, 90, $green, IMG_ARC_CHORD);
  78.  
  79. // #2 rysujemy wypełnienie koła (zielone), o środku w punkcie 300x80 i szerokości 100x100px, zaczynając od kąta 0, do kąta 90
  80.  
  81.  
  82.  
  83. imagearc($image, $cx3, $cy3, 40, 40, 45, 70, $white);
  84.  
  85. // #3 rysujemy koło (białe), bez wypełnienia, o środku w punkcie 50x50 i szerokości 40x40px, zaczynając od kąta 45, do kąta 70
  86.  
  87.  
  88.  
  89.  
  90.  
  91. header("Content-type: image/png");
  92.  
  93. // definiujemy nagłówek z mimetype
  94.  
  95.  
  96.  
  97. imagepng($image);
  98.  
  99. // generujemy obrazek PNG
  100.  
  101.  
  102.  
  103. imagedestroy($image);
  104.  
  105. // zwalniamy uchwyt do obrazka
  106.  
  107. ?>
  108.  


Wynik:

Dołączamy pojedyńczy znak - imagechar()

Ostatnią rzeczą jaką omówimy w tym artykule jest rysowanie tekstu. Narazie wykonamy to prostą metodą, a w następnych artykułach nauczymy się wykorzystywac do tego zewnętrzne czcionki TrueType.
Pojedyńczy znak na obrazku generujemy za pomocą funkcji:

  1. imagechar($image, $font_size, $x, $y, $char, $color);

gdzie:

  • $image - uchwyt do obrazka
  • $font_size - rozmiar czcionki od 1 do 5
  • $x - współrzędna na osi X
  • $y - współrzędna na osi Y
  • $char - znak do napisania na obrazku
  • $color - kolor czcionki

Za pomocą funkcji:

  1. imagecharup($image, $font_size, $x, $y, $char, $color);

dokonamy tego samego, tyle że w pionie.

Przetestujmy jak to działa:

  1. <?php
  2.  
  3. $width = 400;
  4.  
  5. $height = 300;
  6.  
  7. $image = imagecreatetruecolor($width, $height);
  8.  
  9. // stworzyliśmy pusty obrazek o szerokości 400px i wysokości 300px
  10.  
  11.  
  12.  
  13. $black = imagecolorallocate($image, 0, 0, 0);
  14.  
  15. // zdefiniowaliśmy kolor czarny dla tła
  16.  
  17.  
  18.  
  19. $red = imagecolorallocate($image, 255, 0, 0);
  20.  
  21. // zdefiniowaliśmy kolor czerwony i zapisaliśmy go do zmiennej $red
  22.  
  23.  
  24.  
  25. $white = imagecolorallocate($image, 255, 255, 255);
  26.  
  27. // zdefiniowaliśmy kolor biały i zapisaliśmy go do zmiennej $white
  28.  
  29.  
  30.  
  31. $green = imagecolorallocate($image, 0, 255, 0);
  32.  
  33. // zdefiniowaliśmy kolor zielony i zapisaliśmy go do zmiennej $green
  34.  
  35.  
  36.  
  37. $blue = imagecolorallocate($image, 0, 0, 255);
  38.  
  39. // zdefiniowaliśmy kolor niebieski zapisaliśmy go do zmiennej $blue
  40.  
  41.  
  42.  
  43. imagefill($image, 0, 0, $black);
  44.  
  45. // wypełniliśmy obszar 400x300px naszego obrazka kolorem pobranym ze zmiennej $black
  46.  
  47.  
  48.  
  49. imagechar($image, 5, 10, 10, "P", $red);
  50.  
  51. imagechar($image, 5, 50, 50, "H", $green);
  52.  
  53. imagechar($image, 5, 100, 100, "P", $blue);
  54.  
  55.  
  56.  
  57. header("Content-type: image/png");
  58.  
  59. // definiujemy nagłówek z mimetype
  60.  
  61.  
  62.  
  63. imagepng($image);
  64.  
  65. // generujemy obrazek PNG
  66.  
  67.  
  68.  
  69. imagedestroy($image);
  70.  
  71. // zwalniamy uchwyt do obrazka
  72.  
  73. ?>
  74.  

Wynik:

Dołączamy ciąg tekstowy - imagestring()

A teraz to samo, ale nie z pojedyńczym znakiem, ale z całym stringiem, służy do tego funkcja:

  1. imagestring($image, $font_size, $x, $y, $string, $color);

gdzie:


  • $image - uchwyt do obrazka
  • $font_size - rozmiar czcionki od 1 do 5
  • $x - współrzędna na osi X
  • $y - współrzędna na osi Y
  • $string - ciąg znaków do napisania na obrazku
  • $color - kolor czcionki

Sprawdżmy w praktyce:

  1. <?php
  2.  
  3. $width = 400;
  4.  
  5. $height = 300;
  6.  
  7. $image = imagecreatetruecolor($width, $height);
  8.  
  9. // stworzyliśmy pusty obrazek o szerokości 400px i wysokości 300px
  10.  
  11.  
  12.  
  13. $black = imagecolorallocate($image, 0, 0, 0);
  14.  
  15. // zdefiniowaliśmy kolor czarny dla tła
  16.  
  17.  
  18.  
  19. $red = imagecolorallocate($image, 255, 0, 0);
  20.  
  21. // zdefiniowaliśmy kolor czerwony i zapisaliśmy go do zmiennej $red
  22.  
  23.  
  24.  
  25. $white = imagecolorallocate($image, 255, 255, 255);
  26.  
  27. // zdefiniowaliśmy kolor biały i zapisaliśmy go do zmiennej $white
  28.  
  29.  
  30.  
  31. $green = imagecolorallocate($image, 0, 255, 0);
  32.  
  33. // zdefiniowaliśmy kolor zielony i zapisaliśmy go do zmiennej $green
  34.  
  35.  
  36.  
  37. $blue = imagecolorallocate($image, 0, 0, 255);
  38.  
  39. // zdefiniowaliśmy kolor niebieski zapisaliśmy go do zmiennej $blue
  40.  
  41.  
  42.  
  43. imagefill($image, 0, 0, $black);
  44.  
  45. // wypełniliśmy obszar 400x300px naszego obrazka kolorem pobranym ze zmiennej $black
  46.  
  47.  
  48.  
  49. imagestring($image, 2, 10, 10, "PHP", $red);
  50.  
  51. imagestring($image, 3, 50, 50, "EVERYWHERE", $green);
  52.  
  53. imagestring($image, 5, 100, 100, "BLOG", $blue);
  54.  
  55.  
  56.  
  57. header("Content-type: image/png");
  58.  
  59. // definiujemy nagłówek z mimetype
  60.  
  61.  
  62.  
  63. imagepng($image);
  64.  
  65. // generujemy obrazek PNG
  66.  
  67.  
  68.  
  69. imagedestroy($image);
  70.  
  71. // zwalniamy uchwyt do obrazka
  72.  
  73. ?>
  74.  

Wynik:



Jak widać korzystanie z wszystkich tych funkcji jest bardzo proste i ogranicza się do poznania ich składni. Funkcji tych jest bardzo dużo, polecam zajrzeć do manuala, który znajduje się tutaj:
http://php.net/manual/en/ref.image.php
W następnych artykułach nauczymy się operacji na obrazkach - wczytywania obrazka z pliku, obracania go, skalowania, aplikowania filtrów i zapisywania na dysk, a także wielu innych rzeczy.

Brak komentarzy:

Prześlij komentarz

Masz sugestię? Znalazłeś błąd? Napisz komentarz! :)

webmaester.pl - profesjonalne projektowanie WWW i webaplikacji
webmaester.pl - profesjonalne projektowanie WWW i webaplikacji