MOniToR
22.02.2004, 23:42:52
Czy jest mozliwośc napisania skryptu np. jakiejśc galerii która by wyświetlaął pliki z danego katalogu? tzn. bez żadnej bazy danych itd. tylko po prostu aby mi wyswietłiła np. miniatury wszystkich plików które sie znajduja w danym katalogu?
Dawid Pytel
22.02.2004, 23:52:30
Tak, nawet można takie znaleźć np. na www.hotscripts.com lub po przeczytaniu kilku arytkułów odnośnie robienia miniaturek+zabawa z plikami można zrobić to samemu.
przegladanie katalogu pod kontem rozszerzen i wyswietlanie wszystkich grafik prosta sprawa, tylko z tego co zrozumialme z twojego postu to chcecz miniaturki robic w locie, a takie rozwiazanie nie jest zbyt dobre. najlepiej przy jakims tam dodawaniu tworzyc miniaturki do jakiegos katalogu i je wyswietlac, a to jest juz proste
[manual:6445f42e94]opendir[/manual:6445f42e94], [manual:6445f42e94]readdir[/manual:6445f42e94], [manual:6445f42e94]pathinfo[/manual:6445f42e94]
o tworzeniu miniaturek poczytaj w archiwum, bylo tego pelno
kszychu
23.02.2004, 11:04:14
Czasami przydaje się też dynamiczne generowanie miniaturek, np. gdy masz limit miejsca na serwerze. A robi się to bardzo prosto:
dwa pliki: wyswietlajacy miniaturki i generujacy miniaturki.
Pierwszy odczytuje zawartość katalogu z uwzględnieniem rozszerzeń olików graficznych (było o tym na forum więc sobie poszukaj) i tworzy odpowiednie <img src=drugi_plik.php?sciezka=obrazek.gif>, drugi, pozapodaniu mu ścieżki generuje z obrazka miniaturkę (też niedawno było).
[fisher]
23.02.2004, 12:42:15
Cytat
Czy jest mozliwośc napisania skryptu np. jakiejśc galerii która by wyświetlaął pliki z danego katalogu? tzn. bez żadnej bazy danych itd. tylko po prostu aby mi wyswietłiła np. miniatury wszystkich plików które sie znajduja w danym katalogu?
Jest taka moziliwosc
plik thumbnail.php
[php:1:8a9a76a9fa]<?php
header("Content-type: image/JPEG");
if( isset($_GET['img']) ) {
$th_w = $_GET['w'];
$th_h = $_GET['h'];
$img_src=imagecreatefromjpeg($_GET['img']);
$img_dst=imagecreatetruecolor($th_w,$th_h);
imagecopyresized( $img_dst, $img_src , 0, 0, 0, 0, $th_w, $th_h, imagesx($img_src), imagesy($img_src) );
ImageJpeg($img_dst);
ImageDestroy($dst_f);
}
?>[/php:1:8a9a76a9fa]
wywolanie thumbnail.php?img=plik.graficzny.jpg&w=800&h=600
dla plikow innych niz JPEG zmien Content-type na wlasciwy
matid
23.02.2004, 14:16:01
Można by zamiast imagecopyresized użyć imagecopyresampled. Ładniej to wygląda
[fisher]
23.02.2004, 14:25:38
Cytat
Można by zamiast imagecopyresized użyć imagecopyresampled. Ładniej to wygląda :)
Moze, ale (requires GD 2.0.l or greater) nie probowalem, a kod powstal kila doobrych miesiecy temu
Nie mam czasu zeby teraz to sprawdzic, ale bede pamietal
MOniToR
27.02.2004, 12:26:57
hm chyba mnie tu nie zrozumiano, chodzi mi o to że np. odbyła się jakas impreza i mam z 150 fotek z niej, to czy jest jakis sposub abym nie musiał wpisywac pokolei kazdego pliku do bazy tylko np. podac katalog i mi automatycznie wyswietli wszystkie pliki graficzne w tym katalogu w postaci miniatur
[fisher]
27.02.2004, 12:44:26
Cytat
hm chyba mnie tu nie zrozumiano, chodzi mi o to że np. odbyła się jakas impreza i mam z 150 fotek z niej, to czy jest jakis sposub abym nie musiał wpisywac pokolei kazdego pliku do bazy tylko np. podac katalog i mi automatycznie wyswietli wszystkie pliki graficzne w tym katalogu w postaci miniatur
Pytasz bo mnie nie zrozumiales.
Pytanie bylo skierowane w strone wyswietlenia miniatury
Podalem Ci przyklad kodu ktory generuje miniature dla jednego pliku (thumbnail.php?img=plik.jpg&w=800&h=600)
Wiec musisz wygenerowac sobie tyle instancji <img src="thumbnail.php...." /> ile potrzebujesz, chociazby listujesz pliki *.jpg tak, a pozniej chyba wiadomo co robic
[php:1:4be77e7b48]<?php
foreach (glob(DIR."/*.jpg") as $filename)
$wszystkie_pliki[] = $filename;
?>[/php:1:4be77e7b48]
MOniToR
28.02.2004, 17:48:24
Pytanie było skierowane jak wyswietlić na stronie pliki graficzne z katalogu bez wpisywania każdego pliku pokoleji.
[fisher]
3.03.2004, 10:59:33
Cytat
Pytanie było skierowane jak wyswietlić na stronie pliki graficzne z katalogu bez wpisywania każdego pliku pokoleji.
Odpowiedz masz w moim poprzednim poscie
carramba
5.03.2004, 17:05:29
$patch = '../katalog/'
$headfilename = 'plik_'; // Jakikolwiek plik z nazwa 'plik_'
$handle = opendir($patch);
while (false !== ($files = readdir($handle))) {
if ($files != "." && $files != ".." && eregi($headfilename,$files) && eregi ('.jpg',$files)) {
$array[] = $files; // wpisujesz do tablicy
echo $files; // lub drukujesz nazwe
echo '<img src="'.$patch.$files'" width="10" height="10">'; // lub wyswietlasz
}
}
powinno dzialac ale pisalem w locie wiec nie daje za to glowy
Nitryt14
5.03.2004, 17:30:04
Nie łatwiej by było sprawdzac rozszeżenie pliku przez np:
[php:1:9307eb9e1a]<?php
.jpg$|.png$|.gif$
?>[/php:1:9307eb9e1a]
niz przez:
[php:1:9307eb9e1a]<?php
header("Content-type: image/JPEG");
?>[/php:1:9307eb9e1a]
Pozdrawiam
PS. carramba mógłbyś skrypt php wstawiać po nacisnieciu przycisku php napisanego czerwonymi literami bo cieżko sie czyta jak jest wstawiony w tresć postu
[fisher]
5.03.2004, 17:41:45
No dobra napisze
plik thumbnail.php
[php:1:9c0ef69c3a]<?php
header("Content-type: image/JPEG");
if( isset($_GET['img']) ) {
$th_w = $_GET['w'];
$th_h = $_GET['h'];
$img_src=imagecreatefromjpeg($_GET['img']);
$img_dst=imagecreatetruecolor($th_w,$th_h);
imagecopyresized( $img_dst, $img_src , 0, 0, 0, 0, $th_w, $th_h, imagesx($img_src),
imagesy($img_src) );
ImageJpeg($img_dst);
ImageDestroy($dst_f);
}
?>[/php:1:9c0ef69c3a]
plik galeria.php
[php:1:9c0ef69c3a]<?php
$szerokosc = 800;
$wysokosc = 600;
foreach (glob("foto/*.jpg") as $filename)
echo '<img src="thumbnail.php?img='.$filename.'&w='.$szerokosc.'&h='.$wysokosc.'" />';
?>[/php:1:9c0ef69c3a]
Pisane z reki, wiec moze byc nie odporne na ^c^v, ale zasada mniej wiecej taka
Rozumiem ze forum ma sluzyc pomoca dla newbies, ale niech to beda pracowici a nie leniwi newbies ktorzy nie potrafia poskladac wypowiedzi z kilku postow
[fisher]
5.03.2004, 17:45:11
Cytat
[php:1:65a56eb84e]<?php
echo '<img src="'.$patch.$files'" width="10" height="10">'; // lub wyswietlasz
?>[/php:1:65a56eb84e]
rozwiazanie malo efektywne, gdyz nie generuje miniatury, a jedynie wyswietla oryginalny plik w pomniejszeniu
carramba
6.03.2004, 12:07:29
si - oczywiscie ze malo efektywne ale to mial byc przyklad a nie gotowy kod w to miejsce przeciez mozesz sobie wstawic tworzenie miniatury
MOniToR
6.03.2004, 16:07:05
thx fisher , działa
[fisher]
8.03.2004, 10:52:59
Cytat
si - oczywiscie ze malo efektywne ale to mial byc przyklad a nie gotowy kod w to miejsce przeciez mozesz sobie wstawic tworzenie miniatury
tymbardziej nie rozumiem Twojej wypowiedzi ;-))
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.