Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak zmniejszyć zdalny obrazek zachowując proporcje wy*sz ?
xPatryk
post
Post #1





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 9.01.2004

Ostrzeżenie: (20%)
X----


Witam !

Mam problem...

Zrobiłem Bazę Ośrodków Jeździeckich i chcę, aby użytkownicy mogli dodawać zdjęcia (adres do zdjęć zdalnych...) Problem jest w tym, ze jezeli beda za duze, to wszsytko sie rozsypie...

Jeżeli natomiast zastosuję stałe znaczniki height i width, to zdjęcie będzie zniekształcone...

Potrzebuję zastosować coś, co zmniejszy obrazek, jeśli będzie większ niż 300 x 200...

Jak to zrobic ?

Pozdrawiam

Patryk
(IMG:http://forum.php.pl/style_emoticons/default/co_jest.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
maciu
post
Post #2





Grupa: Zarejestrowani
Postów: 238
Pomógł: 1
Dołączył: 27.08.2003

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


oto moje rozwiązanie pochodzące z książki php i MySql vademecum profesjonalisty
[php:1:c06375d51b]<?php
if (!$max_szerokosc)
$max_szerokosc = 160;
if (!$max_wysokosc)
$max_wysokosc = 220;

$rozmiar = GetImageSize($zdjecie);
$szerokosc = $rozmiar[0];
$wysokosc = $rozmiar[1];

$wspolczynnik_x = $max_szerokosc / $szerokosc;
$wspolczynnik_y = $max_wysokosc / $wysokosc;

if ( ($szerokosc <= $max_szerokosc) && ($wysokosc <= $max_wysokosc) )
{
$nowa_szerokosc = $szerokosc;
$nowa_wysokosc = $wysokosc;
}
else if (($wspolczynnik_x * $wysokosc) < $max_wysokosc)
{
$nowa_wysokosc = ceil($wspolczynnik_x * $wysokosc);
$nowa_szerokosc = $max_szerokosc;
}
else
{
$nowa_szerokosc = ceil($wspolczynnik_y * $szerokosc);
$nowa_wysokosc = $max_wysokosc;
}

$zrd = ImageCreateFromJpeg($zdjecie);
$prz = ImageCreate($nowa_szerokosc,$nowa_wysokosc);
ImageCopyResized($prz, $zrd, 0, 0, 0, 0,
$nowa_szerokosc,$nowa_wysokosc,$szerokosc,$wysokosc);

?>[/php:1:c06375d51b]
Go to the top of the page
+Quote Post

Posty w temacie


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: 8.10.2025 - 02:48