Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> dynamiczne tworzenie miniaturek
Black-Berry
post 19.02.2008, 21:43:40
Post #1





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Mam taki problem:

Do tej pory dodając zdjęcie np do galerii od razu po uploadzie docinałem miniaturkę. Chciałbym zmienić teraz system na trochę inny. Chodzi o to, żeby miniaturki były tworzone dynamicznie tzn. przy wyświetlaniu 1 strony z galerią ze zdjęć w rozdzielczości około 800x600 generowałbym przeciętnie około 12-16 miniaturek za każdym razem gdy ktoś odświeży stronę. Czy jednak taki sposób nie sprawi że strona generować się będzie zbyt długo ? Ma ktoś doświadczenie w tej kwestii? Mogłby ktoś doradzić odpowiedznie rozwiązania?


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
l0ud
post 19.02.2008, 21:46:56
Post #2





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


To zależy od wielkości zdjęć i wydajności serwera, mimo wszystko stanowczo odradzam takiego rozwiązania. Optymistycznie patrząc strona będzie się generować kilka sekund, a przy większej liczbie użytkowników zawalisz cały serwer...


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
Black-Berry
post 19.02.2008, 21:50:25
Post #3





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


ale to znaczy że przeprowadzałeś takie testy ? Bo w sumie napisałbym sobie skrypt testujący ale nie mam za dużo czasu :/


--------------------
Go to the top of the page
+Quote Post
l0ud
post 19.02.2008, 21:54:07
Post #4





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Powiem tak, na moim serwerze, który nie był aż taki tragiczny, generowanie jednej miniaturki pliku jpeg o rozdzielczości 1024/768 za pomocą gd2 i imagecopyresampled trwało około sekundy. Pomyśl co się stanie, gdy takich miniaturek będziesz chciał 20... wydajnościowo staniesz za naszą-klasą snitch.gif


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
Black-Berry
post 19.02.2008, 21:56:30
Post #5





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


w takim razie czas na plan 'B'. Dzięki wielkie l0ud


--------------------
Go to the top of the page
+Quote Post
bfcior
post 22.02.2008, 15:33:03
Post #6





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 14.11.2007

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


Lepiej jest tworzyc automagicznie;] miniaturkę przy dodawaniu zdjęcia.

Ja robie tak, że miniatruki przechowuje w bazie danych a zdjęcia w oddzielnych katalogach..

Przy wywołaniu strony pobierasz miniaturke, i robisz odwołanie do większego zdjęcia..
Go to the top of the page
+Quote Post
Kowalikus
post 22.02.2008, 15:54:18
Post #7





Grupa: Zarejestrowani
Postów: 111
Pomógł: 25
Dołączył: 23.07.2004

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


Nieco innym pomysłem na to jest stworzenie generowania wraz z cacheowaniem obrazków. Otóż możesz sobie w zdefiniować reguły do ModRewrite:

Załóżmy, że ścieżka do obrazka wygląda nastepująco:
ścieżka_gdzie_masz_obrazki/nazwa_obrazka,800x600.jpg

1. sprawdza czy plik istnieje
2. jeśli nie istnieje to sprawdza regułę: ^ścieżka_gdzie_masz_obrazki/([0-9a-zA-z_-]+),800x600.jpg$ generuj_obrazek.php?id_obrazka=$1 [L]

Skrypt w pliku generuj_obrazek.php generowałby obrazek, zapisywałby go, a następnie zwracał do przeglądarki jako plik jpg.
Przy kolejnym odwołaniu się do takiego obrazka warunek 1 zostałby spełniony.


--------------------
Go to the top of the page
+Quote Post
Black-Berry
post 22.02.2008, 18:20:00
Post #8





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


@Kowalikus To naprawdę chyba dobry sposób ale po co do tego używać mod_rewrite ?smile.gif Wystarczy sprawdzić za pomocą file_exsist() [tak mi się przynajmniej wydaje].

@bfcior A czy przechowywanie miniaturki w bazie jest wydajne ?


--------------------
Go to the top of the page
+Quote Post
danket
post 7.03.2008, 05:11:20
Post #9





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 17.12.2007
Skąd: inąd :)

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


Możesz też użyć gotowej klasy, phpThumb(), znajdziesz ją tu: http://phpthumb.sourceforge.net/
O tyle ją lubię, że phpThumb() po zrobieniu miniaturki cache'uje ją do katalogu i przy kolejnym wywołaniu sprawdza czy już zdjęcie było obrabiane. Chodzi dość szybko i przy odpowiednim skonfigurowaniu z imagemagickiem chodzi naprawdę bardzo wydajnie.
Dodatkową zaletą tej klasy jest to, że kompletnie nie obchodzi cię zdjecie samo w sobie, czyli jego rozmiar, czy jest pionowe czy poziome, czy jest gifem czy jpeg-iem a może png-iem. Wszystko ustawiasz sobie w pliku configuracyjnym i śmiga. W html wklejasz tylko <img src=phpThumb.php?src=/katalog/zdjecie.jpg&w=100px&q=80 /> i kuniec :) Możesz sobie ustawiac parametrami cuda wianki, jakość, przycięcie, zoom.... Dokumentacja jest bardzo bogata więc nie powinieneś mieć problemu.

Ja napisałem sobie kiedyś własną klase do obróbki zdjęć, ale jakoś polubiłem tę. Polecam.
Oczywiście w celach edukacyjnych i doświadczalnych radzę napisać swoją :))

Pozdrawiam


--------------------
Eee... no fajny ten debian... :)
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: 19.07.2025 - 18:19