2010-03-08 16 views
1

J'ai un site web qui contient beaucoup de projets avec chaque projet contenant une barre latérale.Quel serait un bon moyen de mettre à l'échelle des images en C#?

Dans cette barre latérale, il est possible de joindre des images à un projet. Les images ci-jointes seront montrées dans une galerie avec 3 petits pouces en bas et une plus grande image en haut de la galerie. La grande image se rafraîchira à une autre image lorsqu'un visiteur cliquera sur le petit pouce @ au bas de la galerie.

Les pouces ne posent aucun problème, ils sont affichés correctement.

Mon problème est l'image la plus grande en haut de la galerie. Les images qui sont téléchargées ont une grande variété de tailles, alors que mon titulaire a une largeur de 239 et une hauteur de 179. Quel serait le meilleur moyen de mettre à l'échelle les images afin qu'elles soient correctement affichées aux visiteurs du site?

Merci Zapper (ce code est utilisable pour moi):

int sourceWidth = imgToResize.Width; 
    int sourceHeight = imgToResize.Height; 

    float nPercent = 0; 
    float nPercentW = 0; 
    float nPercentH = 0; 

    nPercentW = ((float)size.Width/(float)sourceWidth); 
    nPercentH = ((float)size.Height/(float)sourceHeight); 

    if (nPercentH < nPercentW) 
     nPercent = nPercentH; 
    else 
     nPercent = nPercentW; 

    int destWidth = (int)(sourceWidth * nPercent); 
    int destHeight = (int)(sourceHeight * nPercent); 

Répondre

2

Vous pouvez redimensionner l'image en conservant le format d'image et enregistrer à nouveau. Ou si vous souhaitez conserver la même image, vous pouvez rechercher une nouvelle hauteur et largeur, en conservant le rapport d'aspect, et l'appliquer en conséquence aux propriétés height et width de l'étiquette img.

Vous pouvez les utiliser pour redimensionner l'image ou trouver sa hauteur et sa largeur.
http://snippets.dzone.com/posts/show/4336
http://www.switchonthecode.com/tutorials/csharp-tutorial-image-editing-saving-cropping-and-resizing

vous pouvez essayer quelque chose sur panning aussi bien dans le cas où vous décidez de garder les images de plus grande taille
How to zoom in and zoom out image using jquery?

0

La mise à l'échelle proportionnelle peut également être effectuée avec CSS. Considérons une image de 100 pixels de largeur sur 200 pixels de hauteur.

<img src="image.png" style="max-width:50;max-height:50;"> 

adaptera l'image dans une boîte 50x50px, c'est-à-dire produira une image 25x50px. De façon analogue,

<img src="image.png" style="min-width:500;min-height:500;"> 

produira et formera une image 500x1000px.

Dans votre cas

<img src="image.png" style="max-width:239;max-height:179;"> 

Cela pourrait être une bonne solution pour vous car vos images sont petites et vous allez charger la vignette et l'image de toute façon, pourrait aussi bien être la même image, sauf bande passante et utiliser les caches.