Moja pierwsza klasa więc proszę o bugi i konstruktywną krytykę ( aha pisanie w PHP to dla mnie rodzaj hobby więc proszę o wyrozumiałość)
O klasie:
1. Pozwala pomniejszać obrazy
2. Pozwala nakładać znak wodny
3. Pozwala na wybór typu pliku ( *.png, *.jpg, *.bmp ) przy zapisie
4. Pozwala na zachowanie proporcji / tego mi brakowało w innych klasach/ . Zmniejsza obraz po podaniu tylko wymaganej szerokości/wysokości lub obu + zachowanie proporcji
5. Obsługuje przeźroczystość (na pewno w *.gif png - dziwny format chętnie posłucham uwag)
P.S.
Do klasy przydało by się (tak sobie myślę) więcej zabezpieczeń głupo-odpornych, ale tak się zastanawiając dalej tego rodzaju klasy są umieszczane raczej wewnątrz skryptów więc zdaje się na osoby które będą używać klasy. Ja sam wole raportowanie błędów w postaci 0 lub 1 szczególnie przy używaniu AJAX'a
Klasa Cphoto.php
Użycie:
<?php $link="../photo/"; $photo="img1.jpg"; // klasa akceptuje *.jpg, *,png *, *.bmp $photo= new photo() // ustawienie ppliku źródłowego $d1=$photo->set_photo($link,$photo); // Ustwawienie rozmiarów do jakich chcemy zmniejszyć obraz źródłowy //po kolei: // miejsce zapisu np: ../photo/pomniejszone/ Ważne katalog musi istnieć // nazwa pod jaką chcemy zapisać np moje1 //szerokość (x) możemy podać lub "null" jeżeli null plik zostanie zmniejszony proporcjonalnie // wysokość (y) j.w //jeżeli podamu oba parametry (x i y) to w zależności od osatniego parametru zostanie zachowana proporcja lub nie // typ pliku ( png, jpg, bmp, lub null) w przypadku wartości nuul typ pliku będzie taki sam jak plik źródłowy // 0 lub 1 zachować proporcje ( NIE / TAK) - WAŻNE nie ma znaczenie przy podanym tylko jednym argumencie x lub y $d2=$photo->set_s("../photo/pomniejszone/'', "moje1","500","null","null","0"'); // zachowanie proporcji szerokość 500 px $d2=$photo->set_s("../photo/pomniejszone/'', "moje2","null","300","bmp","0"); // zachowanie proporcji wysokość 300 px + zapis jako bmp $d2=$photo->set_s("../photo/pomniejszone/'', "moje3","300","300","null","0"'); // zachowanie proporcji szerokość Ważne najszersza krawędż obrazka ( x lub y) nie będzie większa niż zadeklarowana $d2=$photo->set_s("../photo/pomniejszone/'', "moje4","500","500","png","1"); // zachowanie proporcji szerokość 500 px na 500 px na sztywno + zapis jako png //identyczna funkcja dla miniatur działa identycznie , te same arguemty $d3=$photo->set_m("../photo/miniatury/'', "miniq","100","100","png","1"); // zachowanie proporcji szerokość 100 px na 100 px na sztywno + zapis jako png // ustawienie zanku wodnego (także po środku) // argumenty (ścieżka, plik, pozycja) $d4=$photo->set_watemark("/photo/znakwodny/","znakwodny.gif","c") // ustawienie znaku wodnego na środku dostępne (tl, tr, bl, br i c) echo $d4; // ewentualne błędy // zmiana rozmiaru po wcześniejszym ustawieniu // zwraca tablice array(path, file) $d5=$photo->resize("s"); // zmiana wg ustawień z set_s $d6=$photo->resize("m"); // zmiana wg ustawień z set_m echo "<img src=".$d5[0].$d5[1]." alt=\"pomniejszony\" /> <br />"; //Nakładanie znaku wodnego //plik źródłowy - ścieżka //plik źródłowy - nazwa z rozszeżeniem // katalog docelowy // nazwa docelowa bez rozszerzenia - plik będzie tego samego rozszerzenia co źródło // przeźroczystość - dot. wtaemark'ów zapisanych jako jpg 0- 100% przeźroczysty ; 100 - wogólne nie przeźroczysty(0%) // zwraca tablice array(path, file) $d7=$photo->make_watemark("../watemark/","watemark1.jpg","../photo/zznakiem/","moj1zznakiem","50"); // zapisany jako moj1zznakiem znak w 50 % przeźroczysty ?>