Ich möchte eine Funktion schreiben, um ein Bild so zu verkleinern, dass es bestimmten Grenzen entspricht. Zum Beispiel möchte ich ein 2000x2333 Bild so skalieren, dass es in 1280x800 passt. Das Seitenverhältnis muss beibehalten werden. Ich habe den folgenden Algorithmus entwickelt:
%Vor%Und es schien zu funktionieren. Nun ... schien. Aber dann habe ich versucht, ein 1280x1024 Bild auf 1280x800 Grenzen zu skalieren und es gab mir ein Ergebnis von 1280x1024 (was offensichtlich nicht in 1280x800 passt).
Hat jemand irgendwelche Ideen, wie dieses Algorithm funktionieren sollte?
Normalerweise mache ich das Verhältnis zwischen der ursprünglichen Breite und der neuen Breite und dem Verhältnis zwischen der ursprünglichen Höhe und der neuen Höhe.
Danach verkleinern Sie das Bild um das größte Verhältnis. Wenn Sie beispielsweise ein 800 x 600-Bild in ein 400 x 400-Bild skalieren möchten, wäre das Breitenverhältnis 2 und das Höhenverhältnis wäre 1,5. Wenn das Bild im Verhältnis 2 verkleinert wird, wird ein Bild von 400 x 300 angezeigt.
%Vor%Hier ist eine Möglichkeit, das Problem anzugehen:
Sie wissen, dass die Höhe oder Breite des Bildes der des Begrenzungsrahmens entspricht.
Sobald Sie bestimmt haben, welche Dimension der Begrenzungsbox entspricht, verwenden Sie das Seitenverhältnis des Bildes, um die andere Dimension zu berechnen.
%Vor%