Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] PhpThumb, stała szerokość obrazka w HTML a zmienna wysokosc
rasten
post
Post #1





Grupa: Zarejestrowani
Postów: 86
Pomógł: 6
Dołączył: 31.05.2010

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


Witam,

chciałbym, żeby obrazek wyświetlany był ze stała szerokością natomiast jego wysokość była zmienna, ale z pewną maksymalną możliwą wartością. Korzystam z phpthumb'a i narazie mam coś takiego:
  1. <img id="zdjecie" src="libs/phpthumb/phpThumb.php?src=../../../zdjecia/zdjecie1.jpg&w=200&h=jakas_max_wartosc" width="200" border="0" alt="" />

Niestety to nie działa, ponieważ jeśli mam węższy obrazek niż 200 i jednocześnie bardzo wysoki to parametr width="200" i tak sprawi, że przeglądarka sama sobie go przeskaluje w wyniku czego otrzymam wysokość większą niż chce. Jak to można rozwiązać? Wiem, że mogłbym uzyć, np. funkcji getimagesize czy jakoś tak, ale problem w tym, że wartość src obrazka jest ustawiana w js|jquery.

Ten post edytował rasten 2.06.2010, 15:04:06
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
zordon
post
Post #2





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

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


bardzo prosto możesz sobie proporcjonalnie WYŚWIETLAĆ obrazek w html modyfikując go w js:

  1. <script type="text/javascript">
  2. function podmien(id){
  3. var h = id.height;
  4. var w = id.width;
  5. id.width = 200;
  6. id.height = 200*h/w;
  7. }
  8.  
  9. </head>
  10.  
  11. <body >
  12.  
  13. <img src="wisla.jpg" onload="podmien(this);"/>
  14.  
  15. </body>
  16.  
  17. </html>


Oczywiście jeśli obrazek jest duży może być to problem więc najlepiej resizować sobie go (podobnym algorytmem) w php za pomocą GD
Go to the top of the page
+Quote Post
rasten
post
Post #3





Grupa: Zarejestrowani
Postów: 86
Pomógł: 6
Dołączył: 31.05.2010

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


niestety nie działa, po wywolaniu
  1. alert(id.height);
wyskakuje jakas dziwna wysokosc nie majaca nic wspolnego z obrazkiem.
Jak wywale ostania linijkę ze skryptu js
  1. id.height = 200*(h/w);
to alert pokazuje dobrą wysokosc obrazka. Oczywiście alert umieszczam przed ustawieniem id.height. O co chodzi...?
Go to the top of the page
+Quote Post
zordon
post
Post #4





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

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


w tagu <img src="wisla.jpg" onload="podmien(this);"/> nie może być parametru height i width podanego, wtedy alert(id.height) powinno pokazać Ci rzeczywistą, fizyczną wysokość obrazka źródłowego (czyli to, co pokaże Ci windows jak klikniesz prawym przyciskiem myszy i wybierzesz właściwości na pliku obrazka, który chcesz załączyć.
Następnie ustawiasz na sztywno szerokość na 200, a linijka id.height = 200*(h/w); oblicza PROPORCJONALNĄ wysokość, jaka ma zostać nadana obrazkowi. Jeśli dałbyś obrazkowi o wymiarach 400x100 na sztywno wymiary 200x200 (powiedzmy) to zostałby on rozciągnięty nieproporcjonalnie. Jeśli zaś użyjesz mojego skryptu, Przeglądarka wyświetli Ci proporcjonalny, mniejszy obrazek o rozmiarach 200x50.

U mnie skrypt działa, jeśli u Ciebie są problemy wklej cały html

Dodam tylko, że skrypt w żaden sposób nie modyfikuje PLIKU obrazka, zmienia tylko sposób jego wyświetlania w przeglądarce.

PS. jeszcze raz przeczytałem Twojego drugiego posta i podejrzewam, że alerta dałeś po wykonaniu mojego skryptu? Wtedy ta "dziwna" wielkosc to właśnie wartość wyliczona z proporcji. Wyświetl sobie obrazek w przeglądarce - podejrzewam, że cały czas działa!

Ten post edytował zordon 2.06.2010, 17:12:21
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 06:13