Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]rozmiary miniaturek w galerii zdjęc
lamcpp
post
Post #1





Grupa: Zarejestrowani
Postów: 372
Pomógł: 2
Dołączył: 10.05.2009

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


Jak ustalacie rozmiary miniaturek galerii zdjęć zrobionej w PHP (miniaturki tworzone za pomocą biblioteki GD)

Ja natrafiłem na taki wzór:
  1. if($size[0] > $size[1])
  2. {
  3. $thumbnail_width = 100;
  4. $thumbnail_height = (int)(100 * $size[1] / $size[0]);
  5. }
  6. else
  7. {
  8. $thumbnail_width = (int)(100 * $size[0] / $size[1]);
  9. $thumbnail_height = 100;
  10. }


Czyli w zależności od tego czy szerokość, czy wysokość jest większa ustala odpowiedni rozmiar.
Problem jest w tym, że ja chciałbym mieć miniaturki szerokości 135px (w przypadku gdy szerokość jest większa od wysokosci). Jak do tego obliczyc wysokość, oraz analogicznie stworzyć wysokośc i szerokość dla zdjęć, które mają większą wysokość niż szerokość. Przy ustalaniu szerokości wg tego wzoru (tzn podstawiając zamiast 100px - 135px) zdjęcia pionowe dobrze się nie skalują.
Jest do tego może jakiś lepszy wzór (chodzi mi o to żeby zdjęcie się skalowało dobrze).
Go to the top of the page
+Quote Post
f1xer
post
Post #2





Grupa: Zarejestrowani
Postów: 403
Pomógł: 68
Dołączył: 20.03.2008

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


To zwykłe proporcje:
W - wysokosc
S - szerokosc

maxW - maksymalna wysokość
maxS - maksymalna szerokość

1. W > maxW - czyli zmieniasz wysokość na max i proporcjonalnie zmniejszasz szerokość
2. S > maxS - a tutaj odwrotnie szerokość ustawiasz na max a wysokość robisz proporcjonalnie

dla przykładu masz obrazek 350 x 300 i wiesz ze maksymalna szerokość miniatury to 100 czyli
masz proporcje

350 - 100
300 - x
--- mnożysz "na krzyż" ----
350x=30000
x= 30000/350

x - to nowa wysokość, no i teraz musisz jeszcze raz wykonać algorytm żeby sprawdzić czy nowa wysokość nie jest większa od maksymalnej


--------------------
Pomogłem? wyraź to i kliknij "Pomógł"
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 Aktualny czas: 19.08.2025 - 05:27