Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Biblioteka do obsługi zdjęć
Forum PHP.pl > Inne > Oceny
eai
Witam.

Prezentuje moje najnowsze wypociny. Biblioteka do obsługi zdjęć.

Image v1.1
ImageUpload v1.0


Możliwości:
- Zmiana rozmiaru
- Wycinanie
- Wstawianie zdjęć jedno w drugie
- Wstawianie tekstu
- Filtry graficzne
- Wyświetlanie
- Zapis
- Upload (Wykonywanie na wszystkich obrazach okreslonych operacji, narzędzie zmiany nazw)
- Limity

Licencja GNU LGPL

Download: (RAR) (TGZ) (ZIP) (SVN)
Strona projektu |

Przykłady on-line:
Example-01
Example-02
Example-03
Example-04
Example-05
Example-06
Example-07
Example-08
Example-09
Example-10
Example-11
Example-12
Example-13

Upload-01
Upload-02
Upload-03
Upload-04

Wymagania:
- PHP 5
- GD 2.xx

EDIT:
Poprawiony bug, dodana metoda upload do klasy Image oraz nowa klasa do uploadu wielu zdjęć.


Zapraszam do pobierania, testowania, używania i komentowania smile.gif
phpion
Bardzo fajna klasa ze świetnie napisanym kodem. Widać, że znasz się na rzeczy smile.gif Brakuje mi jedynie (a może po prostu przeoczyłem) funkcji dodawania znaku wodnego do zdjęcia. Poza tym super!
eai
Znak wodny możesz zrobić w ten sposób.
  1. <?php
  2.  
  3. include 'lib/Nweb_Scripts_Image.php';
  4.  
  5. try {
  6.  
  7. # Otwieramy wszystkie zdjecia
  8.  
  9. $obj_1 = new Nweb_Scripts_Image('photos/image-01.jpg');
  10. $obj_1->open();
  11.  
  12. $obj_2 = new Nweb_Scripts_Image('photos/watermark2.gif');
  13. $obj_2->open();
  14.  
  15.  
  16. # Komponujemy zdjecia
  17. $obj_1->Compose ($obj_2, Nweb_Scripts_Image::RIGHT + Nweb_Scripts_Image::BOTTOM, 100);
  18.  
  19. # Wyświetlenie zdjęcia
  20. $obj_1->Display();
  21.  
  22. # Wyczyszczenie pamięci przydzielonej dla zdjęcia
  23. $obj_1->ImageClear();
  24. $obj_2->ImageClear();
  25.  
  26. }
  27.  
  28. catch (Exception $e)
  29. {
  30. echo $e->getMessage();
  31. }
  32.  
  33. ?>


Muszę popracować jeszcze nad PNG, coś jest nie tak bo nie uwzględnia przeźroczystości. Wiec narazie z GIF działa znak wodny.
Hacker
eai bardzo ładny kod. No może bym się do nazwy klasy tylko przywalił, bo nie lubię Zendowskich nazw...
Ale nie o to mi chodzi.
Znalazłem małego buga w metodzie ResizeToWidthHeight i widać go nawet w 4 przykładzie (chodzi o to, że jeżeli jest wywołanie $obj->ResizeToWidthHeight(150, 100); to obrazek powinien się chyba zmieścić w prostokącie 150x100, a w 4 przykładzie ma 112 wysokości).

Zamień elseif na if albo
  1. <?php
  2. if ($Width < $this->ImageWidth || $Height < $this->ImageHeight)
  3. if ( ($this->ImageWidth / $this->ImageHeight) >= ($Width / $Height) )
  4. return $this->ResizeToWidth($Width);
  5. else
  6. return $this->ResizeToHeight($Height);
  7. ?>
eai
Faktycznie masz rację. Dzięki.
Moli
Bardzo fajna i ładnie napisana klasa smile.gif Kod jest dobrze opisany smile.gif Nazwa klasy mi się nie podoba, nie możesz dać po prostu Image ? smile.gif

ps. Możesz dodać do klasy upload obrazków ? Wtedy będzie wszystko w jednym miejscu, a to tak naprawdę tylko jedna metoda smile.gif
eai
Poprawiony bug z ResizeToWidthHeight, dzięki Hacker.
Dodana metoda uploadu, i ustawiania limitów, poprawiona metoda zapisu (troche więcej możliwości)
Nowa klasa ImageUpload, która pozwala na upload wielu zdjęć, wykonania na nich określonych zmian, zapisanie oraz narzędzie zmiany nazwy.

Example: Upload 3 zdjęć, zmiana rozmiaru i filtr skala szarości.
  1. <?php
  2.  
  3. include 'lib/Image.php';
  4. include 'lib/ImageException.php';
  5. include 'lib/ImageUpload.php';
  6. include 'lib/ImageUploadException.php';
  7.  
  8. try {
  9.  
  10. $upload = new ImageUpload();
  11.  
  12. if($upload->upload(array('obraz1','obraz2','obraz3'))) {
  13. $upload->setLimit (50, 'KB', array(IMAGETYPE_JPEG, IMAGETYPE_PNG));
  14. $upload->ResizeToWidthHeight(800, 600)->GrayScale();
  15. $upload->uploadSave ('uploads/','zdjecie', true, 5);
  16. }
  17.  
  18. }
  19.  
  20. catch (ImageUploadException $e)
  21. {
  22. die($e->Message());
  23. }
  24.  
  25. ?>


Czekam na komentarze.
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.