Pokazywanie postów oznaczonych etykietą GD2. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą GD2. Pokaż wszystkie posty

czwartek, 28 maja 2015

[PHP][GD2] Używanie czcionek TrueType

TRUE
3802236720239978412
Standardowa czcionka używana do tworzenia tekstu za pomocą imagestring() łagodnie rzecz ujmując pozostawia wiele do życzenia, warto zatem wiedzieć, że za pomocą biblioteki GD można "pisać" po obrazie dowolną czcionką. Czcionek w internecie znajdziemy multum, wybór ograniczony jest tutaj jedynie wyobraźnią.

Co najlepsze - dołączenie zewnętrznej czcionki nie wymaga w GD jakiś specjalnych zabiegów - wszystko sprowadza się do pobrania pliku .ttf z zadaną czcionką TrueType, umieszczeniu go na serwerze, a następnie dołączeniu go do skryptu. W tym bardzo krótkim wpisie pokażę jak za pomocą kilku linijek kodu wygenerować efekt taki jak na obrazku poniżej:


Czcionka na powyższym obrazku została dołączona za pomocą PHP, nie została dodana w żadnym programie graficznym. Nazywa się Nasty i możecie ją pobrać stąd. Zdjęcie na jakim wygenerowano napis stąd. Opiszę teraz w skrócie jak za pomocą zewnętrznej czcionki wygenerować na obrazie napis jak wyżej. Na początek pobierzmy sobie tą czcionkę (plik .ttf) w celach testowych i zapiszmy w katalogu, gdzie pisać będziemy nasz kod. Do pisania czcionką TrueType, którą załączamy z zewnetrznego pliku .ttf służy funkcja:

[code]imagettftext($image, $font_size, $angle, $x, $y, $color, $font, $text);[/code]
gdzie:

  • $image - uchwyt do obrazu
  • $font_size - rozmiar czcionki w px
  • $angle - kąt obrotu czcionki w stopniach
  • $x - współrzędna X, od której zaczynamy pisanie
  • $y - współrzędna Y, od której zaczynamy pisanie
  • $color - kolor czcionki
  • $font - nazwa pliku z czcionką
  • $text - pisany tekst


[PHP][GD2] Prosty gradient i operacje na kolorach pikseli

TRUE
5943953589183166087
W bibliotece GD mamy pełną kontrolę nad każdym pikselem składającym się na wynikowy obrazek. Możemy dowolnie pobierać jego wartości i ustawiać nowe. Możliwość taka, w połączeniu z odpowiednio skonstruowanymi pętlami pozwala na bardzo wiele, m.in. na generowanie gradientów, czyli przejść pomiędzy kolorami.

Funkcje do tworzenia złożonych gradientów są dość obszerne, my tutaj postaramy się nauczyć podstaw tworzenia prostych gradientów polegających na liniowym przejściu pomiędzy kolorami. Nauczymy się też operować na pikselach - pobierać oraz modyfikować ich wartości.

Tworzymy gradient

Popatrzmy na poniższy obrazek:

[PHP][GD2] Manipulacje obrazami

TRUE
6962189171884698785
Dzięki bibliotece GD możemy manipulować dowolnymi obrazami zapisanymi w formatach JPEG, PNG, GIF i BMP. Możemy dokonywać na nich operacji takich samych jakie robiliśmy w poprzednich artykułach, a więc rysować po nich, pisać, a także łączyć je, skalować, obracać i wiele innych rzeczy. W artykule tym nauczymy się wczytywania obrazków z plików, manipulacji na nich, takich jak skalowanie, czy dodawanie do nich innej grafiki, a także zapisywania wygenerowanych i zmodyfikowanych obrazów do pliku.

Warto dokładnie zapoznać się choćby z podstawowymi funkcjami służącymi do manipulacji grafiką, tak aby móc następnie wykorzystywać to w praktyce, np. podczas generowania, czy tworzenia miniaturek dla zdjęć, bądź dodawania znaków wodnych do zdjęć. Zastosowań jest multum, zatem zaczynamy.

Na początek nauczymy się wczytywać grafikę z pliku. Jak wspomniałem na początku - mamy tutaj zaimplementowaną obsługę kilku formatów plików. Praca z nimi niczym się od siebie nie różni, używamy do tego jedynie odpowiednio innych funkcji.

Wczytanie obrazka z pliku - imagecreatefrom()

W poprzednich atykułach na samym początku tworzyliśmy uchwyt do pustego obrazka i dopiero potem na nim pracowaliśmy, rysując figury jak prostokąty, czy elipsy. Teraz zamiast tworzyć pusty obrazek, wczytamy go z pliku JPG.

Do wczytania obrazka z pliku służy kilka funkcji, w zależności od tego jaki format chcemy wczytać. I tak, np.
[code]
imagecreatefromjpeg($nazwa_pliku) //wczytuje obrazek z pliku JPG
imagecreatefrompng($nazwa_pliku) //wczytuje obrazek z pliku PNG
imagecreatefromgif($nazwa_pliku)  //wczytuje obrazek z pliku GIF
imagecreatefrombmp($nazwa_pliku)  //wczytuje obrazek z pliku BMP
[/code]

Na początek naszej pracy pobierzmy sobie dwa poniższe zdjęcia do testów i zapiszmy sobie je w folderze, w którym pisać będziemy nasz kod. Żeby nam się przyjemnie pracowało, to na obu mamy 2 piękne panie :)


oraz



ś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:
[code]imagefilledrectangle()[/code]

[PHP][GD2] Podstawy generowania grafiki

TRUE
5540378502607286314
Biblioteka GD2 wbudowana w PHP to bardzo rozbudowane narzędzie, pozwalające na generowanie właściwie każdego rodzaju grafiki bitmapowej. Dzięki niej możemy generować grafikę bezpośrednio z poziomu PHP, co za tym idzie również manipulować istniejącą grafiką zapisaną w plikach takich jak JPEG, PNG, czy BMP, a więc tworzyć różnego rodzaju miniaturki, skalować i obracać zdjęcia, nakładać "w locie" filtry, znaki wodne, bądź napisy z zewnętrznych czcionek TrueType.

Biblioteka ta nadaje się również świetnie do generowania wszelkiego rodzaju graficznych wykresów reprezentujących dane pobrane bezpośrednio z PHP. Wygenerowane grafiki możemy następnie wyświetlać bezpośrednio do przeglądarki, albo zapisywać do plików. W artykule tym nauczymy się podstawowej zasady działania biblioteki i dowiemy się w jaki sposób wykorzystywać ją w kodzie.

1. Tworzymy pusty obrazek - imagecreatetruecolor()

Pierwszą podstawową rzeczą podczas pracy z GD2 jest stworzenie uchwytu do obrazka. Każda zabawa z GD2 rozpoczyna się od tego. Będziemy operować na pełnej palecie barw, więc nasz obrazek będziemy tworzyć za pomocą funkcji:
[code]$image = imagecreatetruecolor(szerokość_obrazka, wysokość_obrazka)[/code]
webmaester.pl - profesjonalne projektowanie WWW i webaplikacji
webmaester.pl - profesjonalne projektowanie WWW i webaplikacji