Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Biblioteka do obsługi zdjęć, PHP 5, OOP
eai
post
Post #1





Grupa: Zarejestrowani
Postów: 367
Pomógł: 10
Dołączył: 20.05.2005

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


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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował eai 26.01.2008, 21:05:58
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Bardzo fajna klasa ze świetnie napisanym kodem. Widać, że znasz się na rzeczy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Brakuje mi jedynie (a może po prostu przeoczyłem) funkcji dodawania znaku wodnego do zdjęcia. Poza tym super!
Go to the top of the page
+Quote Post
eai
post
Post #3





Grupa: Zarejestrowani
Postów: 367
Pomógł: 10
Dołączył: 20.05.2005

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


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.
Go to the top of the page
+Quote Post
Hacker
post
Post #4





Grupa: Zarejestrowani
Postów: 225
Pomógł: 0
Dołączył: 1.11.2005

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


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. ?>


Ten post edytował Hacker 13.10.2007, 18:11:00
Go to the top of the page
+Quote Post
eai
post
Post #5





Grupa: Zarejestrowani
Postów: 367
Pomógł: 10
Dołączył: 20.05.2005

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


Faktycznie masz rację. Dzięki.
Go to the top of the page
+Quote Post
Moli
post
Post #6





Grupa: Zarejestrowani
Postów: 662
Pomógł: 45
Dołączył: 26.03.2007
Skąd: Warszawa

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


Bardzo fajna i ładnie napisana klasa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Kod jest dobrze opisany (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Nazwa klasy mi się nie podoba, nie możesz dać po prostu Image ? (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
eai
post
Post #7





Grupa: Zarejestrowani
Postów: 367
Pomógł: 10
Dołączył: 20.05.2005

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


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.

Ten post edytował eai 14.10.2007, 21:47:23
Go to the top of the page
+Quote Post

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: 24.08.2025 - 13:31