2010-10-06 5 views
1

I php besoin de redimensionner une image de sorte que la largeur et la hauteur après le redimensionnement doivent être inférieures ou égales aux valeurs redimensionnées attendues.trouver dimensionnement redimensionnement dim qui doit être inférieur ou égal au pouce nécessaire dim

considèrent l'image source est 680x520

Le besoin thumbmail taille doit être < = 300x200

Je veux trouver la valeur proportionnelle redimensionnée qui devrait être inférieur ou égal à 300x200.

peut être comme 299x199 ou 300x200 mais pas plus de 300 de largeur et 200 de hauteur.

Les deux doivent donc être inférieurs ou égaux à la taille requise.

Quelle pourrait être la formule?

Répondre

2
//height - original image height; 
//width - original image width; 
if ($height > $width) { 
    $thumb_height = 200; 
    $thumb_width = round(($width * $thumb_height)/$height); 
} else { 
    $thumb_width = 300; 
    $thumb_height = round(($height * $thumb_width)/$width); 
} 

EDIT:

//height - original image height; 
//width - original image width; 
$thumb_height = 0; 
$thumb_width = 0; 
if ($height > $width) { 
    $thumb_height = 200; 
} else { 
    if ($height > ($width * 200)/300) 
    $thumb_height = 200; 
    else 
    $thumb_width = 300; 
} 

if ($thumb_height > 0) { 
    $thumb_width = round(($width * $thumb_height)/$height); 
} else { 
    $thumb_height = round(($height * $thumb_width)/$width); 
} 

Je ne trouve aucun exemple pour le que vous me renversé donné. Si vous en avez un, dites-le moi et je vérifierai si le script ci-dessus nécessite des modifications.

+0

votre formule ne fonctionne pas complètement. Si la largeur est 630 et la hauteur est 500 de l'image originale, la sortie est 300x238. Mais ma condition est de 238 devrait être inférieure à 200. Si cela se réduit alors proportionnellement la largeur devrait également réduire. Considérez si nous réduisons 38px en hauteur puis en largeur devrait également être réduit avec 38px pour le rendre proportionnel. J'espère que vous pouvez comprendre ce que j'attends. –

+0

J'ai changé le script. Vérifie ça. – CristiC

+0

Si vous souhaitez exclure les décimales, vous pouvez utiliser floor au lieu de round. – CristiC

1

Peut-être offtopic, mais pour la manipulation d'images facile à utiliser realy: Wide Image

Questions connexes