Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Skrypt/php] Galeria, proszę o pomoc...
Forgoot
post
Post #1





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 17.03.2004
Skąd: Suwałki

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


Witam!
Chciałbym stworzyć skrypt galerii (dla jpg, gif, png, jpeg). Chciałbym aby obrazki, np: z katalogu images wyświetlać w rozmiarach 100x100 (dopiero po kliknięciu na "miniaturkę" zdjęcie otwierałoby się w "realnym" rozmiarze).
Proszę powiedzieć mi jakich funkcji należy użyć. Potem postaram się zaprezentować swoje wypociny. laugh.gif


--------------------
"Nie bój się krytyki, ale pochwały lękaj się bardzo"
Zapraszam: www.Przerosl.com.pl !
Go to the top of the page
+Quote Post
Vogel
post
Post #2





Grupa: Zarejestrowani
Postów: 402
Pomógł: 0
Dołączył: 20.01.2003

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


http://pl2.php.net/manual/pl/ref.image.php


--------------------
Go to the top of the page
+Quote Post
-BonZo-
post
Post #3





Goście







Powiedzcie jakie funkcje nalezy pokolei wykonac.... lub omowcie troche sad.gif
Go to the top of the page
+Quote Post
bronx
post
Post #4





Grupa: Zarejestrowani
Postów: 333
Pomógł: 0
Dołączył: 4.03.2004

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


odpalasz skrypt tak:

<img src="miniaturka.php">

miniaturka.php:
  1. <?php
  2. $sciezka = "galeria/obrazek.jpg";
  3. list($szerokosc, $wysokosc, $type, $attr) = getimagesize($sciezka); // pobranie atrybutow obrazka
  4. $nowa_wysokosc = 120; // wysokosc miniaturki
  5. $nowa_szerokosc = ceil(($nowa_wysokosc*$szerokosc)/$wysokosc);
  6. $duzy = imagecreatefromjpeg("$sciezka");
  7. $nowy = imagecreatetruecolor($nowa_szerokosc, $nowa_wysokosc);
  8. imagecopyresampled($nowy, $duzy, 0, 0, 0, 0, $nowa_szerokosc, $nowa_wysokosc, $szerokosc, $wysokosc);
  9.  
  10. header("Content-type: image/jpeg");
  11. header("Content-disposition: filename=\"obrazek.jpg\"");
  12.  
  13. imagejpeg($nowy,"", 80); // 80 to jakosc miniaturki (od 0-100)
  14. ImageDestroy($duzy);
  15. ImageDestroy($nowy);
  16. ?>


ten skrypt tworzy miniaturki w wysokości 120 a szerokość oblicza automatycznie.

Ten post edytował bronx 5.04.2006, 12:48:40
Go to the top of the page
+Quote Post
-BonZo-
post
Post #5





Goście







a jak dodac aby typy plikow w podanym przez Ciebie katalogu nie byly tylko jpg? co trzeba dodac?
Go to the top of the page
+Quote Post
Vogel
post
Post #6





Grupa: Zarejestrowani
Postów: 402
Pomógł: 0
Dołączył: 20.01.2003

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


a wiec.

1. formularz na stronie. nim przesylasz pliki na serwer. pamnietamy o enctype="multipart/form-dat" w <from> i jedziemy dalej
2. przy pomocy getimagesize sprawdzamy typ pliku jelsi jest graifka - idziemy dalej, jelsi nie - wywalamy blad
3. przy uzyciu imagecreatetruecolor() tworzymy kanwe miniaturki, imagecopyresampled() sluzy do skalowania, zapisujemy na serwerze przy pomocy ktoregos z imagejpg/imagepng/itp.itd.etc.
4. na koniec przenosimy nasz tymczasowy ulpoadowany plik oryginalnych romziarow do odpowiedniego katalogu ( move_uploaded_file() )


--------------------
Go to the top of the page
+Quote Post
bronx
post
Post #7





Grupa: Zarejestrowani
Postów: 333
Pomógł: 0
Dołączył: 4.03.2004

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


proponowałbym jednak korzystać z mojego sposobu (troche będziesz musiał przerobić tylko skrypt). A to dlatego, że on tworzy miniaturkę w locie, a co za tym idzie nie musisz zaśmiecać serwera dwoma plikami (i dużym i miniaturką). Po drugie zawsze lepiej w locie, ponieważ jeżeli potem będziesz chciał mieć miniatruki w innych rozmiarach to wystarczy że zmienisz w skrypcie jedną liczbę i tak będzie, a jak zapiszesz już w określonych wielkościach to potem będzie probem i będziesz musiał je wgrywać jeszcze raz
Go to the top of the page
+Quote Post
-BonZo-
post
Post #8





Goście







@Vogel, dzieki smile.gif @bronx powiedz tylko jak zrobic aby po kliknieciu "miniaturki"
Go to the top of the page
+Quote Post
-BonZo-
post
Post #9





Goście







@Vogel, dzieki smile.gif @bronx powiedz tylko jak zrobic aby po kliknieciu "miniaturki" obrazek wyswietlal sie w nowym okniew rzeczyswistych wymiarach?
Go to the top of the page
+Quote Post
bronx
post
Post #10





Grupa: Zarejestrowani
Postów: 333
Pomógł: 0
Dołączył: 4.03.2004

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


najpierw za pomocą getimagesize(); pobierasz wysokośc i szerokość dużej fotki (żebyś wiedział o jakiej szerokości i wysokości okno ma się otworzyć). a jak je tworzyć masz tutaj:

http://www.kurshtml.boo.pl/skrypty/okno.html#generator_okien

jakbyś dalej miał problemy to pisz smile.gif
Go to the top of the page
+Quote Post
luinnar
post
Post #11





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 15.07.2004
Skąd: Bielsko-Biała

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


Cytat(bronx @ 2006-04-05 12:04:03)
proponowałbym jednak korzystać z mojego sposobu (troche będziesz musiał przerobić tylko skrypt). A to dlatego, że on tworzy miniaturkę w locie, a co za tym idzie nie musisz zaśmiecać serwera dwoma plikami (i dużym i miniaturką)

To jedna z większych głupot jakie kiedykolwiek czytałem. Proponuję pomiar czasu wykonywania się skryptu przy powiedzmy 20 miniaturkach robionych w locie.

Miniaturyzacja zdjęć to operacja czaso- i pamięciochłonna. Należy umieszczać miniaturki na serwerze ponieważ są nie zajmują dużo miejsca a ich generacja nie obciąża serwera (1 raz pomniejszasz i masz spokój).

Ten post edytował luinnar 5.04.2006, 15:15:01


--------------------
notDevBlog - devblog.luinnar.com
Go to the top of the page
+Quote Post
bronx
post
Post #12





Grupa: Zarejestrowani
Postów: 333
Pomógł: 0
Dołączył: 4.03.2004

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


Cytat(luinnar @ 2006-04-05 16:14:25)
Cytat(bronx @ 2006-04-05 12:04:03)
proponowałbym jednak korzystać z mojego sposobu (troche będziesz musiał przerobić tylko skrypt). A to dlatego, że on tworzy miniaturkę w locie, a co za tym idzie nie musisz zaśmiecać serwera dwoma plikami (i dużym i miniaturką)

To jedna z większych głupot jakie kiedykolwiek czytałem. Proponuję pomiar czasu wykonywania się skryptu przy powiedzmy 20 miniaturkach robionych w locie.

Miniaturyzacja zdjęć to operacja czaso- i pamięciochłonna. Należy umieszczać miniaturki na serwerze ponieważ są nie zajmują dużo miejsca a ich generacja nie obciąża serwera (1 raz pomniejszasz i masz spokój).

owszem - zgadzam się z Tobą ale przy serwisach które nie mają jakichś rekordowych odwiedzin nie ma to wielkiego wpływu. A ptrzeczytaj drugą część postu. Co jeżeli nagle z miniaturek które mają wielkość 60x60 będziesz chciał miniaturki 150x150 ? będziesz je musiał jeszcez raz wgrywać i dobrze oi tym wiesz, a tak wystarczy tylko zmienić w skrypcie i takie masz
Go to the top of the page
+Quote Post
luinnar
post
Post #13





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 15.07.2004
Skąd: Bielsko-Biała

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


Cytat
owszem - zgadzam się z Tobą ale przy serwisach które nie mają jakichś rekordowych odwiedzin nie ma to wielkiego  wpływu. A ptrzeczytaj drugą część postu. Co jeżeli nagle z miniaturek które mają wielkość 60x60 będziesz chciał miniaturki 150x150 ? będziesz je musiał jeszcez raz wgrywać i dobrze oi tym wiesz, a tak wystarczy tylko zmienić w skrypcie i takie masz
To robisz skrypt generujący wszystkie jeszcze raz i tak robisz kilkadziesiąt operacji mniej. Optymalizacja to podstawa, a uczenie początkujących złych nawyków to głupota. Tak sądzę ja.


--------------------
notDevBlog - devblog.luinnar.com
Go to the top of the page
+Quote Post
bronx
post
Post #14





Grupa: Zarejestrowani
Postów: 333
Pomógł: 0
Dołączył: 4.03.2004

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


Cytat(luinnar @ 2006-04-05 21:17:40)
Cytat
owszem - zgadzam się z Tobą ale przy serwisach które nie mają jakichś rekordowych odwiedzin nie ma to wielkiego  wpływu. A ptrzeczytaj drugą część postu. Co jeżeli nagle z miniaturek które mają wielkość 60x60 będziesz chciał miniaturki 150x150 ? będziesz je musiał jeszcez raz wgrywać i dobrze oi tym wiesz, a tak wystarczy tylko zmienić w skrypcie i takie masz
To robisz skrypt generujący wszystkie jeszcze raz i tak robisz kilkadziesiąt operacji mniej. Optymalizacja to podstawa, a uczenie początkujących złych nawyków to głupota. Tak sądzę ja.

głupotą jest pisanie skryptów, które nadają się tylko do jednego zastosowania - tak sądze ja. Dla mnie podstawą jest elastyczność - że można coś szybko zmienić i dopasować do wszystkich stron a nie na twardo pisanie skryptu, a jak chce się coś zmienić to pisanie nowych które poprawiają stare (już nie pasujące) "procedury". Oczywiście każdy ma swoje zdanie smile.gif

a tak troche odbijając od miniaturek - co jeżeli chcesz nakładać swoje loga na grafiki ? też uważasz że lepiej jest to robić przy uploadzie ? co jeżeli nagle zmienisz logo ? połowa fotek z jednym, połowa ze starym ? nie lepiej w locie je nakąłdać ? i masz problem z głowy bo zawsze wiesz że będziesz miał aktualne smile.gif

Ten post edytował bronx 5.04.2006, 20:29:14
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 Aktualny czas: 20.08.2025 - 05:32