Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: miniaturki - ale bez miniaturek
Forum PHP.pl > Forum > PHP
lled3
mam na stronie obsluge BBcode

  1. <?php
  2. $str = preg_replace("#[img](.*?)[/img]#si", "<img src=\"1\" style=\"vertical-align:middle\" border=\"0\" alt=\"Obrazek\" />", $str);
  3. ?>


jednak on "wyświetla" wszytsko - i zdarza sie ze ktos wstawi zaszeroki obrazek i rozwala stronę.

Widziałem w jakims modzie phpBB, skrypt który mierzy szerokosc obrazka - i przy wysiwetlaniu zmniejsza go (tylko przy wyswietlaniu) podajac width i height - a po kliknieciu w nowym oknie otwiera sie 100%.

Jak taki skrypt wykonac ?
jarmiar
przecież możesz zrobić to za pomocą htmla

  1. <img src="" width="" height="" >


podając odpowiednie wymiary obrazka
lled3
tylko skad wziąć te wartosci width i height sciana.gif

wstawiam obrazek z linku poprzez BBcode - i nie znam jego wymiarów.
rybik
1. napisac funkcję do miniaturek albo użyć gotowego skryptu

  1. <?php
  2. // zapisujemy sobie sciezke do obrazka z napisem "brak zdjęcia"
  3. define (BB_NO_IMAGE, 'sciezka/do/pliku/nophoto.jpg');
  4.  
  5. function make_BBimage($file=BB_NO_IMAGE,$size_x=150,$size_y=200) {
  6.  
  7. // sprawdzic czy $file jest plikiem
  8. // sprawdzić, czy wymiary niezerowe
  9. // pobrac wymiary funkcją getimagesize
  10. // policzyć proporcję ratio=x/y
  11. // jezeli y>=x
  12. // y1 = $size_y , x1 = $size_y * ratio
  13. // wynik zaokrąglić
  14. // w przeciwnym wypadku
  15. // x1 = $size_x , y1 = $size_x / ratio
  16. // wynik zaokrąglić
  17. // wygenerowac miniature przy uzyciu funkcji imageResize
  18. // zapisać miniature
  19. // zwrócić ścieżke do miniatury
  20.  
  21. }
  22. ?>


to tak z palca pisane, dokładne instrukcje i gotowy skrypt znajdziesz tu: http://www.sitepoint.com/article/image-resizing-php

w dotychczasowej funkcji w ścieżce do pliku zamiast $1 użyć make_BBimage($1,150,100), gdzie 150 i 100 to wymiary miniatury

2. mozna go wzbogacić o obłożenie miniatury linkiem do oryginału

3. można dopisać ... helikoptery smile.gif które znajdziesz wyszukując frazę: php thumbnail lightbox script
JoShiMa
Poniżej funkcja, która skaluje tak, że dłuższy bok ma 400px
  1. <?php
  2. $max = 400;
  3. $rozmiar = GetImageSize($foto);
  4. if($rozmiar[0]<$rozmiar[1]){
  5. $wspolczynnik = $rozmiar[0]/$max;
  6. }else{
  7. $wspolczynnik = $rozmiar[1]/$max;
  8. }
  9. $szer = (int)($rozmiar[0]/$wspolczynnik);
  10. $wys = (int)($rozmiar[1]/$wspolczynnik);
  11. ?>


Jeśli chcesz żeby szerokość była 400px bez względu na to czy to dłuższy bok to możesz tak:
  1. <?php
  2. $max = 400;
  3. $rozmiar = GetImageSize($foto);
  4. $wspolczynnik = $rozmiar[0]/$max;
  5. $szer = (int)($rozmiar[0]/$wspolczynnik);
  6. $wys = (int)($rozmiar[1]/$wspolczynnik);
  7. ?>
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.