Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt Galerii zdjęć
Forum PHP.pl > Forum > Przedszkole
eunix
Pisze sobie galerie zdjęć ale natrafiłem na problem, ustawiłem sobie, że na stronie wyświetlana jest miniatura zdjęcia a po kliknięciu na nią wyskakuje popup z powiększonym zdjęciem.

Jednak miniatura, którą ustawiłem na 100px na 100px, gdy włoże zdjęcie które ma np. 20px na 145px to wtedy brzydko to wygląda, tak samo jest przy powiększeniu jak chce powiększyć takie zdjęcie do 640px na 480px.
Może ktoś mi pomoże?

Pozdrawiam
treewood
No niestety tak bywa. Mysle, ze po prostu warto wyswietlic wtedy zdjecie w orginalnych rozmiarach a nie powiekszac je. Chyba, ze sie zle zrozumielismy
UNK
2 pytania:
1) Jak tą miniaturę ustawiasz, zmieniasz jedynie wartości w <img ... /> czy tworzysz dodatkowy plik jako jego miniatura ?
2) Po kiego chcesz powiększać zdjęcia ? Przecież jak ma być to galeria to chyba zdjęcia powinny być w oryginalnej wielkości, okno może sobie tam być np max 640x480 ale niech zdjęcie będzie takiej wielkości jak jest rzeczywiście.
eunix
1) Tak, rozmiary miniatury ustalam w <img />
2) Tylko czasami jak ktoś da bardzo duże zdjęcie to będzie trzeba operować scrollem...a ja chce zeby było ładne okienko bez scrolla i wszystkie zdjęcia ładnie wyglądały, nie zwarzając na rozmiar.
UNK
No jeśli taki problem to żeby sprawdzić rozmiar obrazka polecam
getimagesize" title="Zobacz w manualu php" target="_manual lub imagesx" title="Zobacz w manualu php" target="_manual imagesy" title="Zobacz w manualu php" target="_manual

Z resztą chyba będziesz wiedział co zrobić winksmiley.jpg
Sprawdzasz jaka jest rozdzielczość obrazka.
W wypadku miniatury, jeśli jest mniejsza od ustalanych wartości nie tykasz go, jeśli większa pomniejszasz go za pomocą <img />
To samo przy wyświetlaniu pełnego.

EDIT: Jeszcze mała podpowiedź do imagesx i y potrzeba biblioteki gd, także możesz o niej poczytać na php.net winksmiley.jpg
Paweł :)
np. tak:

  1. <?php
  2. $rozmiar = getimagesize($sciezka_do_zdjecia);
  3. //$rozmiar[0]  -  szerokość
  4. //$rozmiar[1]  -  wysokość
  5. ?>


  1. <a href="java script:displayWindow(''.$sciezka_do_zdjecia.'','.$rozmiar[0].','.$rozmiar[1].')">miniaturka</a>


coś takiego zrób
UNK
Właśnie nie do końca, bo wtedy ustali jakie są rzeczywiste, a tutaj chodzi o to, że jeżeli są mniejsze to obrazek musi pozostać bez zmian bo zostanie rozciągnięty (a taki zazwyczaj brzydko wygląda), jeśli natomiast obrazek jest większy to wtedy ma być pomniejszony.
Tutaj najlepiej by pasowało zrobić jakieś stosunki wysokości do szerokości do docelowego rozmiaru aby obrazek zawsze był ładnie wyświetlany, a nie rozciągnięty np na szerokość lub wysokość.
Ale na początek wystarczy jeden if

if ({wysokosc} <= {yy} && {szerokosc} <= {xx}) {obrazek normalny)
else {obrazek pomniejszony}

w {} podałem co ma się ewentualnie znajdować winksmiley.jpg
wolfek
temat podoby,moja stronka to www.wolfek.pl i nie wiem dlaczego po kliknieciu na obrazek w ie jest on linkiem php a np w operze otwiera sie zdjecie??
UNK
Czary mary hokus pokus bęc, ponieważ jestem wróżką i wiem jakich skryptów użyłeś na swojej stronie, jak nie podasz konkretów to nikt Ci tego nie powie, ale sądzę że coś masz źle napisane i ie odbiera to jako obrazek do pobrania tongue.gif i wcale temat nie podobny :/



PS. Jeśli piszecie zawartość strony w php używajcie \r\n tam gdzie ma być koniec lini, potem wychodzi takie coś jak ma google a takiego źródła strony jeśli potrzeba nie przegląda się zbyt ciekawie.
eunix
Narazie zdołałem zrobić tylk to:
  1. <?php
  2. $image = getimagesize('zdjęcie');
  3. $y = $image[1];
  4. $x = $image[0];
  5.  
  6. if($y <= "480" && $x <= "640") 
  7. {
  8. $nx = $x;
  9. $ny = $y;
  10. } 
  11. else 
  12. {
  13. $nx = 640;
  14. $ny = 480;
  15. }
  16. ?>



wszystko jest dobrze, ale jeżeli zdęcie będzie miało tylko jeden bok dłuższy niż norma to wtedy jak pomniejszy to do rozmiarów 640 na 480, zle to wygląda ;/

//edit

teraz zrobiłem tak, ale czy ten kod będzie dobrze działał przy wszystkich formatach zdjęć?
  1. <?php
  2. $image = getimagesize('zdjęcie');
  3. $y = $image[1];
  4. $x = $image[0];
  5.  
  6. if($y == $x) 
  7. {
  8.  $nx = 600;
  9.  $ny = 600;
  10. } else {
  11. if($y <= "480" && $x <= "640") 
  12. {
  13. $nx = $x;
  14. $ny = $y;
  15. } elseif ($y >= "480" && $x >= "640") 
  16. {
  17. $nx = 640;
  18. $ny = 480;
  19. }
  20. else
  21. {
  22. $nx = $x / 2;
  23. $ny = $y / 2;
  24. }
  25. }
  26. ?>
UNK
No teraz całkiem miło to wygląda.
Hmm, chodzi Ci o format, png, jpg, gif, itd... ?
to: "GIF, JPG, PNG, SWF, SWC, PSD, TIFF, BMP, IFF, JP2, JPX, JB2, JPC, XBM, or WBMP"
neiss
Jest prostsza opcja której ja użyłem u siebie i sprawdza sie w 100% smile.gif
Kod
function openWindow (el,w,h) {
new_window = window.open(el, '', 'menubar=no, toolbar=no, location=no,
directories=no, status=no, scrollbars=no, resizable=yes, fullscreen=no,
channelmode=no, width='+w+', height='+h+', left=0, top=0, leftmargin=0,
topmargin=0, marginwidth=0, marginheight=0').focus()
}

wtedy gdy wpisyjesz linka do zdjecia dajesz tak
<a href="java script:openWindow('adres_obrazka',660,500);">nazwa_obrazka_lub_thumb</a>
i wyskakuje ci okienko z dopasowanym obrazkiem a gdy jest mniejszy to i tak okienko ma 660 na 500 (dlaczego tyle? - dopasowalem okno dla obrazkow 640x480 whedy nie wyskakuja suwaki) a obrazek jest wyswietlany w 100% swojego rozmiaru bez powiekszania
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.