Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skalowanie, ucinanie zdjęć, ratio
eai
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Ludvik
post
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
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: 15.10.2025 - 01:28