Le code ci-dessous fonctionne très bien pour redimensionner une image par rapport hauteur/hauteur et je peux également créer une fonction séparée par largeur. Mais je ne suis pas toujours sûr si une image devra être rétrécie par la hauteur ou la largeur. Par exemple, si l'espace dans lequel l'image doit être redimensionnée est 100 largeur et 100 hauteur et une image est 150 par 90, alors c'est la largeur qui aurait besoin d'être rétrécie. Si l'image est de 80 sur 160, la hauteur devra être réduite. Donc, ce que je demande, c'est comment le code ci-dessous peut-il être modifié afin de réduire une image par rapport d'aspect pour s'adapter aux paramètres de largeur et de hauteur? Merci.Redimensionnement d'une image
jQuery.fn.resizeHeightMaintainRatio = function(newHeight){
if (this.aspectRatio == undefined)
this.aspectRatio = parseInt($(this).width()/$(this).height());
$(this).height(newHeight);
$(this).width(newHeight * this.aspectRatio);
}
J'ai encore modifié le code, car à la suite d'une inspection plus approfondie, ni ma version mise à jour ni Dan ne semblaient fonctionner correctement. Le rapport d'aspect a été perdu alors voici encore un autre. Je l'ai essayé sur une image et jusqu'ici tout va bien. Ici, il est,
jQuery.fn.resizeMaintainRatio = function(newHeight, newWidth){
widthRatio = parseInt($(this).width()/newWidth);
heightRatio = parseInt($(this).height()/newHeight);
if(heightRatio > widthRatio)
{
this.aspectRatio = parseInt($(this).css("width")/$(this).css("height"));
$(this).css("height", newHeight);
$(this).css("width", newHeight * this.aspectRatio);
}
else{
this.aspectRatio = parseInt($(this).css("height")/$(this).css("width"));
$(this).css("width", newWidth);
$(this).css("height", newWidth * this.aspectRatio);
}
}
NOTE DE NOUVEAU: après plus utiliser le code ci-dessus fonctionne très étrangement, essayez cette place - http://plugins.jquery.com/project/kepresize
Ne pas oublier d'enlever cette ligne: * if (this.aspectRatio == undefined) * –