Bild Größenänderung Algorithmus

Ich möchte eine Funktion schreiben, die zu verkleinern, ein Bild zu passen, angegebenen Grenzen. Zum Beispiel möchte ich die Größe einer 2000x2333 Bild zu passen in 1280 x 800. Das Seitenverhältnis muss beibehalten werden. Ich habe mit dem folgenden Algorithmus:

NSSize mysize = [self pixelSize]; //just to get the size of the original image
int neww, newh = 0;
float thumbratio = width /height; //width and height are maximum thumbnail's bounds
float imgratio = mysize.width /mysize.height;

if (imgratio > thumbratio)
{
    float scale = mysize.width /width;
    newh = round(mysize.height /scale);
    neww = width;
}
else
{
    float scale = mysize.height /height;
    neww = round(mysize.width /scale);
    newh = height;
}

Und es schien zu funktionieren. Naja ... schien. Aber dann versuchte ich die Größe ein 1280x1024 Bild auf einem 1280x800 Grenzen und es gab mir ein Ergebnis von 1280x1024 (die offensichtlich nicht passen in 1280 x 800).

Hat jemand irgendwelche Ideen, wie dieser Algorithmus funktionieren sollte?

InformationsquelleAutor Marius | 2010-07-26
Schreibe einen Kommentar