Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jakie rozwiązanie będzie najlepsze - GD, czy SVG?
Forum PHP.pl > Forum > PHP
sweter
Witam,
na swojej stronie pod obrazkami chcę zastosować modne ostatnio rozmazane odbicie (mniej więcej takie coś).
Wpadły mi do głowy dwa rozwiązania:
1. GD
Po wrzuceniu pliku na serwer zostanie utworzony drugi plik z odbiciem.
2. SVG
Przy wyświetlaniu każdy obrazek będzie miał tworzone odbicie za pomocą JS+SVG.

Co Wy radzicie? Jakie rozwiązanie będzie najodpowiedniejsze?
Czy wybierając 1. nie obciążę za bardzo serwera (najbardziej obawiam się wykorzystania procesora podczas rozmywania)?
A czy wybierając 2. nie obciążę za bardzo komputera użytkownika (na próbę utworzyłem 8 obrazków z rozmyciem w Inkscapie i przy przewijaniu obraz mocno skacze - na www też to będzie?)?

Pozdrawiam
erix
SVG? A nie przypadkiem canvas? Chyba to drugie. tongue.gif

Jest mały problem - canvas jeszcze nie wszystkie przeglądarki obsługują.

Cytat
Czy wybierając 1. nie obciążę za bardzo serwera (najbardziej obawiam się wykorzystania procesora podczas rozmywania)?

To jeszcze z GD się korzysta? Nie masz ImageMagick?

Cytat
(na próbę utworzyłem 8 obrazków z rozmyciem w Inkscapie i przy przewijaniu obraz mocno skacze - na www też to będzie?)?

Ok, fajnie że mamy fusy do wróżb.
everth
JS +Canvas - Taki ContentFlow robi wszystko po stronie użytkownika. I robi to szybko - z tego co się zainteresowałem to wychodzi że w normalnych przeglądarkach używa Canvas a do IE jakiegoś ichniejszego filtra. Przeglądnij sobie kod źródłowy (ze szczególnym uwzględnieniem metody addReflection). Za pomocą Canvas można też nałożyć blur więc przy paru modyfikacjach w skrypcie i ten efekt by poszedł. Co do IE to przecież nie wszystko musi błyszczeć na glanc.

GD - również mogłoby by być gdyby zastosować cache do generowanych zdjęć. Działa zawsze tak samo bez względu na przeglądarkę - tylko jest niestety mniej elastyczne (nie można płynnie obrabiać np. w przeglądarce)

JS+SVG - wszystkie moje próby kończyły się porażką (albo Opera protestowała, albo Chrome lub FF, nie wspominając z wiadomych względów IE). Dlatego uważam że nawet normalne przeglądarki nie dorosły jeszcze do pełnej obsługi tego standardu.
thek
Ale to nie jest odbicie winksmiley.jpg Przyjrzyj się dokładnie. Jeśli dobrze widzę to nałożona jedynie maska o przejściu od przezroczystości do białego smile.gif Ale tak to wygląda na pierwszy rzut oka.
everth
@thek Nie wiem jak to ściśle określić - ale to samo robi ContentFlow (tyle że bez bluru). Jeśli dla ciebie to nie jest odbicie to w takim razie jak je zdefiniujesz? Nałożona maska + przekształcenie perspektywiczne?

Jakby się ktoś uparł to pewnie by się dało (nie takie wtyczki już widziałem) - tylko że to rozwiązania jest na tyle eleganckie i nie zajeżdża procka że w zupełności wystarczy. W przypadku GD czy ImageMagick można by się prosić o nałożenie perspektywy (dalej zakładając że o to ci chodzi).

@DOWN: Patrzyłem, patrzyłem i wreszcie złapałem o ci chodzi winksmiley.jpg Rzeczywiście to nałożona maska na dolną część foty (choć faktura tak się ułożyła że ciężko zauważyć). Trochę ordynarne to rozwiązanie.
thek
Mówię o tym konkretnym przykładzie podanym przez autora smile.gif Jeśli się przyjrzysz to zauważysz, że tam nie ma zniekształceń i odbić obrazu. Najlepiej to widać na głazach bo odcinają się od reszty otoczenia. Powinny mieć po "zblurowanej" stronie odpowiedniki. Nie ma ich. Dlatego wnioskuję, że tutaj nie ma efektu rozmytego lustra.
#luq
Oczywiście rozwiązanie z JS to jest w ogóle jakaś pomyłka, każdy user odwiedzając każdorazowo tą stronę będzie przekształcał obrazek (bo obrazków z canvas chyba nie da się zapisać do cache`a przeglądarki). Rozwiązuj to po stronie serwera przy zapisie obrazka. Co do obciążenia procesora to bez przesady to nie są nie wiadomo jakie obliczenia, ja mam skrypt który dodaje do dość dużych zdjęć liniuszek z każdego boku, żeby było można było ustalić wielkość poszczególnych elementów zdjęcia + na dole opis zdjęcia i działa to bez jakichkolwiek zastrzeżeń wydajnościowych.

Co do rozwiązania to jeśli czujesz się na siłach to zawszę możesz dopisać metodę do mojej klasy opartej o GD. Niestety nie miałem styczności z ImageMagick więc na temat jego wyższości nie mogę nic powiedzieć winksmiley.jpg
sweter
Dziękuję za odpowiedzi.
Z ImageMagic niestety nie mogę skorzystać, nie ma jej na serwerze, więc pozostanie GD smile.gif
@thek i @everth: źle patrzycie - to jest odbicie smile.gif
erix
Cytat
Z ImageMagic niestety nie mogę skorzystać, nie ma jej na serwerze, więc pozostanie GD

Zmień serwer. Bez IM są sto lat za konkurencją.

Poza tym, na wielu serwerach nie ma tego rozszerzenia wkompilowanego w PHP, ale przez shell_exec możesz normalnie korzystać z ImageMagick jak z linii poleceń.
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-2025 Invision Power Services, Inc.