![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 367 Pomógł: 10 Dołączył: 20.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Potrzebuje kilka wzorów na obliczanie szerokości i wysokości obrazu.
1. Obliczanie ratio zdjęcia po podaniu wysokości i szerokości zdjęcia 2. Mam zdefiniowane ratio, podaną wysokość i szerokość zdjęcia. Chcę uciąć zdjęcie jeśli ratio zdjęcia jest inne niż zdefiniowane ratio a) Ucinam wysokość, szerokość zostaje taka sama, tak żeby ratio zgadzało się ze zdefiniowanym ratio B) Ucinam szerokość, wysokość zostaje taka sama, tak żeby ratio zgadzało się ze zdefiniowanym ratio c) Ucinam szerokość i wysokość, tak żeby ratio zgadzało się ze zdefiniowanym ratio Pomocy :-) Ten post edytował eai 13.06.2007, 17:39:32 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Ale ratio to przecież zwykły ułamek... Więc jak najbardziej:
x/y = ratio => x = y*ratio i y = x/ratio Jeżeli ratio obrazka jest większe od oczekiwanego, to znaczy, że jest za szeroki. Jeżeli mniejsze, to za wysoki. Obliczasz szerokość/wysokość z podanych wyrażeń. Jak chcesz uciąć kawałek ze środka, to robisz to tak jak napisał Black-Berry. Szerokość starego minus szerokość nowego i to dzielone przez 2. Tyle musisz obciąć z lewej i z prawej. A jeżeli chcesz być w 100% dokładny (w końcu na liczbach naturalnych operujemy...), to mój pomysł na algorytm przycinania jest taki: Porównujesz ratio z oczekiwanym. Jeżeli jest większe to: Sprawdzasz, czy wysokość obrazka dzieli się przez mianownik ratio. Jeżeli tak, to zostawiasz ją w spokoju i ucinasz tylko na szerokość. Jeżeli nie, to liczysz nową wysokość (stara wysokość - (stara wysokość modulo mianownik ratio). Na podstawie nowej wysokości i oczekiwanego ratio liczysz szerokość. Jeżeli ratio jest mniejsze, to na odwrót (zamieniasz wysokość z szerokością i mianownik z licznikiem). Do wszystkiego pasują te wzory, które podałem. Ten post edytował Ludvik 13.06.2007, 18:27:29 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 01:28 |