Je souhaite écrire une fonction permettant de réduire la taille d'une image pour l'adapter à des limites spécifiées. Par exemple, je veux redimensionner une image 2000x2333 pour tenir dans 1280x800. Le rapport d'aspect doit être conservé. J'ai trouvé l'algorithme suivant:Algorithme de redimensionnement d'image
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;
}
Et il a semblé fonctionner. Eh bien ... semblait. Mais j'ai ensuite essayé de redimensionner une image 1280x1024 à une limite de 1280x800 et cela m'a donné un résultat de 1280x1024 (ce qui ne correspond évidemment pas à 1280x800).
Quelqu'un a des idées sur la façon dont cet algorighme devrait fonctionner?
Oh, je dois ajouter pour votre exemple casting de 1280x800 les 1280x1024 rapports seraient 1 et 1,28, après la redimensionnez serait 1000 x 800 – GWW
Merci! Je pense que ça marche enfin! – Marius