Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 

 
Reply to this topicStart new topic
> [php] Biblioteka do obsługi zdjęć, PHP 5, OOP
eai
post 13.10.2007, 14:23:14
Post #1





Grupa: Zarejestrowani
Postów: 356
Pomógł: 7
Dołączył: 20.05.2005
Skąd: Lublin

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 smile.gif

Ten post edytował eai 26.01.2008, 21:05:58


--------------------
Najtrudniej jest zrozumieć, dlaczego w ogóle coś rozumiemy. A. Einstein
profileGolden / profileNavigeo / Nasza-Klasa
Go to the top of the page
+Quote Post
phpion
post 13.10.2007, 16:32:26
Post #2





Grupa: Zarejestrowani
Postów: 4 337
Pomógł: 591
Dołączył: 10.12.2003
Skąd: Sosnowiec, Dąbrowa Górnicza

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


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!


--------------------
Warsztat: Eclipse Helios PDT + PHP 5.3.2 + PostgreSQL 8.4 + Kohana 2.3.4

Problem rozwiązałem, temat do zamknięcia
Go to the top of the page
+Quote Post
eai
post 13.10.2007, 16:39:41
Post #3





Grupa: Zarejestrowani
Postów: 356
Pomógł: 7
Dołączył: 20.05.2005
Skąd: Lublin

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.


--------------------
Najtrudniej jest zrozumieć, dlaczego w ogóle coś rozumiemy. A. Einstein
profileGolden / profileNavigeo / Nasza-Klasa
Go to the top of the page
+Quote Post
Hacker
post 13.10.2007, 18:06:30
Post #4





Grupa: Zarejestrowani
Postów: 226
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


--------------------
(\.../)This is Bunny
(O.o)Copy Bunny into your signature to help him...
(> <)...on his way to world domination
Go to the top of the page
+Quote Post
eai
post 14.10.2007, 10:51:27
Post #5





Grupa: Zarejestrowani
Postów: 356
Pomógł: 7
Dołączył: 20.05.2005
Skąd: Lublin

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


Faktycznie masz rację. Dzięki.


--------------------
Najtrudniej jest zrozumieć, dlaczego w ogóle coś rozumiemy. A. Einstein
profileGolden / profileNavigeo / Nasza-Klasa
Go to the top of the page
+Quote Post
Moli
post 14.10.2007, 11:19:02
Post #6





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

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


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


--------------------
Go to the top of the page
+Quote Post
eai
post 14.10.2007, 21:44:07
Post #7





Grupa: Zarejestrowani
Postów: 356
Pomógł: 7
Dołączył: 20.05.2005
Skąd: Lublin

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


--------------------
Najtrudniej jest zrozumieć, dlaczego w ogóle coś rozumiemy. A. Einstein
profileGolden / profileNavigeo / Nasza-Klasa
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 2.09.2010 - 22:29