Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Środkowanie skalowanych zdjęć przy wyświetlaniu.
przemo191
post 4.07.2012, 13:09:05
Post #1





Grupa: Zarejestrowani
Postów: 154
Pomógł: 3
Dołączył: 1.08.2011

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


Witam, mam problem z dynamicznym wyśrodkowaniem zdjęcia po skalowaniu w php.

  1. function miniatura($foto, $width, $height){
  2. $rozmiar = GetImageSize($foto);
  3. if($rozmiar[0]>$rozmiar[1]) $wspolczynnik = $rozmiar[0]/$width;
  4. else $wspolczynnik = $rozmiar[1]/$height;
  5. $szerokosc = (int)($rozmiar[0]/$wspolczynnik);
  6. $wysokosc = (int)($rozmiar[1]/$wspolczynnik);
  7.  
  8. $class = ' style="width:'.$szerokosc.'px; height:'.$wysokosc.'px;"';
  9. return '<img src="'.$foto.'" class="zdjecie_produkt" alt="'.$sub_kategoria1.'" title="'.$sub_kategoria1.'" '.$class.'/>';
  10. }


W tym momencie idealnie proporcjonalnie skaluje mi zdjęcie i je wyświetla. Problem pojawia się kiedy obraz jest dłuższy niż szerszy.
Jest wtedy wyrównany do lewej. Próbowałem poprzez dodanie margin-left, ale nie do końca mi to wychodzi.

  1. function miniatura($foto, $width, $height){
  2. $rozmiar = GetImageSize($foto);
  3. if($rozmiar[0]>$rozmiar[1]) $wspolczynnik = $rozmiar[0]/$width;
  4. else $wspolczynnik = $rozmiar[1]/$height;
  5. $szerokosc = (int)($rozmiar[0]/$wspolczynnik);
  6. $wysokosc = (int)($rozmiar[1]/$wspolczynnik);
  7.  
  8. if($rozmiar[0]>$rozmiar[1]){
  9. $center = (int)($wspolczynnik);
  10. }else{
  11. $center = (int)($rozmiar[0]/$wspolczynnik);
  12. }
  13.  
  14. $class = ' style="width:'.$szerokosc.'px; height:'.$wysokosc.'px; margin-left:'.$center.'px;"';
  15. return '<img src="'.$foto.'" class="zdjecie_produkt" alt="'.$sub_kategoria1.'" title="'.$sub_kategoria1.'" '.$class.'/>';
  16. }


A funkcje wywołuje np.
  1. miniatura('../uploated_file/'.$kategoria1.'/'.$nazwa.'/'.$sub_kategoria1.'/1.jpg', 145, 100)


Mogę liczyć na waszą pomoc? wink.gif

edit/
Przepraszam za spam.
Szukałem nie tam gdzie trzeba, problem tkwił w css.
Dodałem do stylu:
  1. margin: 0 auto;
  2. display: block;


Ten post edytował przemo191 4.07.2012, 13:09:27
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 Wersja Lo-Fi Aktualny czas: 23.07.2025 - 03:14