Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Graphix, Prosta klasa GD
Szadow
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 6
Dołączył: 21.11.2010

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


Witajcie forumowicze!

Chciałbym wam przedstawić moją prostą i zarazem nieskomplikowaną klasą Graphix którą napisałem z nudów (jak i w celach edukacyjnych). a postanowiłem wystawić na łamach forum bo uznałem że komuś może się przydać. Ponadto czyni kod (wg. mnie) czytelniejszym i ładniejszym pomijając to że część funkcji to wrappery (IMG:style_emoticons/default/wink.gif) . Oto taki przykładowy kod:

  1. <?php
  2. # Dołączamy plik Graphix
  3. include '../Graphix.class.php';
  4.  
  5. try
  6. {
  7. # Tworzymy nowy obiekt
  8. $graphix = new Graphix();
  9.  
  10. # Wczytujemy obrazek
  11. $graphix->load('water.jpg');
  12. }
  13. # Ten wyjątek występuje kiedy próbujemy wczytać obrazek, który nie istnieje
  14. catch(FileExistsException $e)
  15. {
  16. echo $e->getMessage();
  17. }
  18. # Wyjątek występuje kiedy na serwerze nie jest zainstalowany GD. Jeśli jesteś pewien że masz zainstalowane GD, możesz to wyciąć
  19. catch(ExtenstionNotInstalled $e)
  20. {
  21. echo $e->getMessage();
  22. }
  23.  
  24. # Tworzymy kolory
  25. $graphix->createColor('czerwony', 255, 0, 0);
  26. $graphix->createColor('zielony', 0, 255, 0);
  27. $graphix->createColor('niebieski', 0, 0, 255);
  28. $graphix->createColor('dzikiroz', 255, 0, 255);
  29.  
  30.  
  31. # Tworzymy punkty: pozycja elipsy i jej rozmiar (szerokość i wysokość)
  32. $pos = new Point(150, 80);
  33. $size = new Point(50, 50);
  34.  
  35. # Rysujemy elipsę i koło
  36. $graphix->ellipse($pos, $size, 'czerwony');
  37. $graphix->circle(new Point(220, 180), 50, 'zielony', FILLED);
  38.  
  39. # Piszemy tekst na ekranie
  40. $graphix->write("This text has been made by Graphix\n(for real by GD)!", 13, new Point(10,300), 'magnata', 'arial.ttf');
  41.  
  42. # Używamy filtra pixelate
  43. $fPixelate = new Filter(Filter::Pixelate);
  44. $fPixelate->setArg(PIXELATE_SIZE, 5 );
  45.  
  46. $graphix->filter($fPixelate);
  47.  
  48.  
  49.  
  50. # Wyświetlamy w formacie png
  51. $graphix->render('png');
  52. ?>


Download: Repozytorium na GitHub'ie

Dokumentacja: Dokumentacja

To chyba wszystko. A co do kodu to dla niektórych kod może być gorszy od podstawowego (GD) ale to zależy wyłącznie od własnych upodobań.
Proszę o komentarze i wasze opinie.

Ten post edytował Szadow 26.03.2011, 12:35:44
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Szadow
post
Post #2





Grupa: Zarejestrowani
Postów: 47
Pomógł: 6
Dołączył: 21.11.2010

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


Ad 1. Namespaców na razie nie planuje - mam zamiar to trzymać przez jakiś czas (jeśli nie na zawsze) na 5.2.0
Ad 2. Poprawione (w jakimś stopniu) ale i tak będzie trzeba to poprawić (IMG:style_emoticons/default/wink.gif)
Ad 3. Racja, dodane
Ad 4. To jest GitHub, gdzie ja to mam dać? (IMG:style_emoticons/default/dry.gif)
Ad 5. Do poprawy
Ad 6. Z góry projekt miał być TYLKO i wyłącznie na GD ale zastanawiam się nad jego rozszerzeniem o ImageMagick czy też GMagik.
Ad 7. Wyjątki poprawione (zresztą wcześniej)
Ad 8. Nad tym pracuje
Ad 9. Po co komu rysowanie po nie istniejących punktach? Rysuje tam gdzie chce.
Ad 10. Patrz punkt 7

Wybacz ale po co dawać super napakowany projekt skoro jeśli ktoś inny zobaczy błąd jakiego ja nie wiedziałem być może będzie trzeba wszystko przepisać. A tak to zmieniam w trakcie rozszerzania i wg. mnie publikacja wersji beta nie była za wczesna. Ponad to dodałem parę poprawek (większych czy mniejszych).
Nie ukrywam też że jeszcze dużo zostało do zrobienia...

Ten post edytował Szadow 3.04.2011, 16:23:29
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 13:55