Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Biblioteka do obsługi zdjęć (PHP 5 , GD 2)
Forum PHP.pl > Forum > Gotowe rozwiązania > Algorytmy, klasy, funkcje
eai
Nweb Image v2.0:

Link do projektu: http://code.google.com/p/nweb-image
Będę starał się rozwijać również wiki pages.

Licencja GNU LGPL

Obsługa plików graficznych (Nweb Image):
- Tworzenie i wykonywanie obiektów akcji
- Tworzenie i wykonywanie obiektów walidacji
- Zmiany rozmiaru
- Zmiana rozmiaru obszaru roboczego
- Obracanie
- Odwracanie w pionie i poziomie
- Kadrowanie
- Filtry graficzne
- Komponowanie
- Znaki wodne
- Fala
- Zapis do pliku
- Wyświetlenie

Dodawanie tekstu (Nweb Image_Text):
- Wybór czcionki, koloru, rozmiaru
- Dwa rodzaje tekstu (Ramowy oraz zwykły)

Upload plików (Nweb Image_Upload)
- Tworzenie i wykonywanie obiektów akcji
- Tworzenie i wykonywanie obiektów walidacji
- Format nazewnictwa, auto numerowania plików
- Zapisanie do pliku

Tworzenie Tokenów (Nweb Image_Captcha):
- Definiowanie rozmiaru grafiki
- Definiowanie rozmiaru czcionki
- Wybór czcionki ttf
- Definiowanie kilku kolorów czcionki, bądź jednego
- Tworzenie własnych i wykorzystywanie gotowych obiektów generujących tło
- Wybranie stopnia obracania się liter
- Wybranie zakresu losowania wielkości czcionki
- Wpisanie własnego tekstu
- Przykłady: Przykład 1, Przykład 2, Przykład 3, Przykład 4, Przykład 5, Przykład 6


Zmiany w stosunku do poprzedniej wersji:
- Nowe nazewnictwo
- Szereg nowych funcji
- Zmiany konstrukcyjne


Download:
SVN: http://nweb-image.googlecode.com/svn/trunk/
Kod
svn checkout http://nweb-image.googlecode.com/svn/trunk/

Paczka: RAR | ZIP | TAR.GZ

W zestawie znajduje się:
- Dokumentacja (phpDoc)
- Przykłady wykorzystania możliwości biblioteki
- Źródła

Przykłady on-line
- Formularz z tokenem
- Upload
- Fala + znak wodny
- ... więcej przykładów
mokry
Klasa fajna, jednak pozostanę przy troszkę innej klasie:

http://verot.net/php_class_upload.htm

Nie jest to żadna reklama klasy ani nic takiego.
Twoja klasa ma jednak dla mnie za mało funkcji w porównaniu do wyżej wymienionej. Może dzięki niej dodasz kilka funkcjonalności do Twojej (?).
Przy okazji: powyższa klasa działa na PHP4/5

Pozdrawiam.
menic
Cos linki nie dzialaja.... :|
eai
już działają.
mdnm
prosze o nowy link
eai
Linki uaktualniono
Adrian Staniszewski
klasa ogółem super smile.gif bardzo fajna i użyteczna

prosta ale brakuje mi - a może nie znalazłem? - zmiany kompresji zdjęcia
Piotrek_90
Podczas robienia swojej strony użyłem tego skryptu, oczywiście uwzględniłem w stopce autora tego skryptu.
Tego poszukiwałem przez około miesiąc yahoo.gif
Endzio
Proszę o aktualizację linków.
eai
Nowa wersja 2.0,

szczegóły w pierwszym temacie.
Zapraszam do testowania, i dzielenia się opiniami
qba10
Klasa ogólnie mi się bardzo podoba. Ale mam problem z przezroczystością podczas skalowania plików png
Oto mój kod:
  1. <?php
  2. $obj_znak = new Image('galeria/aimbig2.png');
  3.          
  4.            
  5.            $obj_1 = new Image($save_dir.$last_name_photos);
  6.            
  7.            $skala = ceil($obj_1->imageWidth()/2);
  8.            $obj_znak->resizeToWidth($skala);
  9.            
  10.            
  11.            if($obj_1 -> imageWidth() > $obj_znak -> imageWidth() and  $obj_1 ->  imageHeight()  > $obj_znak ->  imageHeight  () )
  12.            {
  13.            $obj_1-> watermark ($obj_znak, Image::LEFT + Image::BOTTOM, 20 , 20);
  14.            $obj_1-> save($last_name_photos,'75' ,$save_dir);
  15.            }
  16.            $obj_1->resizeToWidthHeight(400, 400);
  17.            $obj_1-> save($last_name_photos,'75' ,$save_dir.'small/');
  18.            
  19.            $obj_1->resizeToWidthHeight(150, 150);
  20.            $obj_1->save($last_name_photos,'75' ,$save_dir.'mini/');
  21.            
  22.            $obj_1->imageCleanup();            
  23.            $obj_znak->imageCleanup();
  24. ?>


I gdy skaluje w tym miejscu : $obj_znak->resizeToWidth($skala); (linijka 9) to w miejscach w których obrazek powinien być przezroczysty jest czarny. Dzieje się to przy każdym sklaowaniu pliku png z przeroczystymi elementami.
Czy można sobie z tym jakoś poradzić?
eai
Będę musiał to poprawić. Dzięki za zgłoszenie.

Poprawione. Klasa obsługuje przeźroczystość plików PNG (kanał alfa) podczas wszystkich operacji oprócz metody compose().
Victor152
Cudo. Gratulacje.
qba10
A wiec teraz po update'cie:
-nie działa przezroczystość gif
- na gif oraz na png nie działa poprawnie dodawanie znaku wodnego (zamiast przezroczystszego znaku wodnego jest biały prostokąt o wymiarach takich jakie powinien mieć znak wodny)
- jpg działa poprawnie
- tak samo przezroczystość png (tak jak pisałeś)
DonMuha
Jak zrobić żeby obrazek wyświetlał się w jednym miejscu a nie usuwał mi całą stronę? Mój skrypt:
  1. $nazwa = $_SESSION['login'];
  2. $points = queryMySql("SELECT * FROM `users` WHERE `login` LIKE '$nazwa'");
  3.  
  4. $obj = new Image('avatars/'.$points["avatar"]);
  5. $obj->resizeToWidth(90);
  6. $obj->grayScale();
  7. $obj->brightness(120);
  8. $obj->display();
  9. $obj->imageCleanup();
wookieb
Kod generowanie obrazka robisz w oddzielnym pliku a potem na stronie
  1. <img src="obrazek.php" />

Ale toż to k.... podstawy obsługi obrazków!
DonMuha
Już dawno tak zrobiłem gdyż nie działa to... Ponieważ chce to zrobić z bazą danych - obsługa sesji...

Cytat
Fatal error: Uncaught exception 'Image_Exception' with message 'Wrong file format' in F:\Programy\xampp\htdocs\YMapping\lib\Image.php:190 Stack trace: #0 F:\Programy\xampp\htdocs\YMapping\scripts_include\addimage.php(14): Image->__construct('../avatars/') #1 {main} thrown in F:\Programy\xampp\htdocs\YMapping\lib\Image.php on line 190


Cytat
<?php
include '../functions.php';
include '../lib/Image.php';
include '../lib/Image/Exception.php';
include '../lib/Image/Text.php';
include '../lib/Image/Text/Exception.php';
include '../lib/Image/Text/Basic.php';
connectWithDatebase("localhost", "root", "", "libraryscripts");
login();
logout();
$nazwa = $_SESSION['login'];
$points = queryMySql("SELECT * FROM `users` WHERE `login` LIKE '$nazwa'");

$obj = new Image('../avatars/'.$points["avatar"]);
$obj->resizeToWidth(90);
$obj->grayScale();
$obj->brightness(120);
$obj->display();
$obj->imageCleanup();
?>
eai
Swoją drogę lepiej jakbyś ten obrazek zapisał do pliku, zamiast generować go dynamicznie... z uwagi na to że chcesz wykorzystywać to do avatarów!
wookieb
No a co to za problem w obrazek.php obsłużyc baze?
DonMuha
Cytat
Slepy jestes? Skrypt co podałem obsługuje baze ale nie działa coś! Wogóle rekordów nie wyświetla...
@2x up
Chciałem tak zrobić ale żaden skrypt mi nie chce mi zmniejszyć obrazków tongue.gif
+ chce dodać jeszcze tekst na obrazku (nazwe użytkownika)

Już działa;)

@Edit
Tekst nie działa poprawnie: brak przezroczystości.
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-2024 Invision Power Services, Inc.