2010-12-01 27 views
0

Voici le problème. J'ai une image qui aura une hauteur différente à chaque fois en fonction de l'image chargée.Trouver un pourcentage

Je voudrais mettre à l'échelle cette image afin qu'elle corresponde à l'intérieur du document qui a une hauteur de 800 pixels. Donc si l'image a une hauteur de 2560px, je dois trouver le PERCENTAGE nécessaire pour ramener cette hauteur de pixel à 750 afin qu'elle soit bien ajustée sur la page.

Je suis coincé en essayant de trouver la formule pour ce problème assez simple.

Voici mon code:

iTextSharp.text.Image pic = iTextSharp.text.Image.GetInstance(
    image, System.Drawing.Imaging.ImageFormat.Jpeg); 

if (pic.Height > pic.Width) 
{ 
    //Maximum height is 800 pixels. 
    pic.Height formula goes here.... 
} 
else 
{ 
    //Maximum width is 600 pixels. 
    pic.Width formula goes here.... 
} 

Répondre

5

Un certain nombre p est tel que p * 2560 = 750. Par conséquent, p = 750/2560 = 0.29296875.

Bien sûr, assurez-vous de faire une division en virgule flottante.

+2

Et - en indiquant l'évidence - ne pas oublier de multiplier par 100 pour obtenir le rapport en pourcentage! – LukeH

+0

Bien que la raison pour laquelle vous voudriez le pourcentage et non le rapport est un peu un mystère pour moi, sauf si vous essayez d'afficher le facteur d'échelle à l'utilisateur. – Sorpigal

+0

Merci, celui-ci m'a donné un pet de cerveau. : P –

0

Je ne sais pas si je comprends votre problème exactement. Voulez-vous dire quelque chose comme ça?

pourcentage = (FrameHeight/picHeight) * 100

Exemple:

(750/2560) * 100 = 29

Cela signifie: 2560 * 0,29 = 750

0

Ici x est la hauteur maximale désirée, y est la hauteur réelle de l'image et p est le pourcentage.

p = x/y; 
x = p * y; 
y = x/p; 

Étant donné deux, vous pouvez trouver l'autre.