Image : garder la resolution si la taille ne depasse pas le maximum definit...


Contenu du snippet

Dans le cas de galleries d'images par exemple on peut être amené à afficher une image dans un cadre d'un maximum de X pixel en hauteur et Y pixel en largeur.
Et comme certaines images peuvent être plus petite que le maximum definit , on garde leur résolution.

Ce code ne servira peut être jamais , mais j'ai mis quelque temps à trouver comment faire donc...
J'ai fais ce code en C# à l'origine , pour les fans de vb j'ai essayé de le faire aussi en vb mais bon
ça fait longtemps que j en ai pas fait il risque d'y avoir des erreurs !

Et c'est aussi ma première source sur un site de Codes-Sources (champagne pour tout le monde !!)

Note :: j'ai ecrit le nom des objets en entier >> System.Drawing.Bitmap au lieu de Bitmap tout court
d'une part pour les newbies (qu'ils se mélangent pas les pinceaux)
et d'autre part , parce que "Image" ,par exemple, existe aussi dans la classe "System.Drawing" donc ....

Source / Exemple :


'-----------------------------------------------------------------------
' C#
'-----------------------------------------------------------------------

void Page_Load(object sender,EventArgs e){
          int LargeurMax = 500; 'Largeur max
          'On créé un nouveau Bitmap en indiquant le chemin ENTIER vers votre image sur le serveur.
          System.Drawing.Bitmap MonBitmap = new System.Drawing.Bitmap(Server.MapPath("")+"\\"+CheminVersImage);
          'Handle Image
          System.Web.UI.WebControls.Image MonImage = new System.Web.UI.WebControls.Image();
          MonImage.ImageUrl=UrlDeVotreImage;          

          'Verification de la largeur ....
          '(la hauteur sera calculée automatiquement mais si vous êtes restreint
          'en hauteur vous pouvez aussi le faire en verifiant la hauteur !)

          if(MonBitmap.Width<=LargeurMax){

                    MonImage.Width=MonBitmap.Width;
                    MonImage.Height=MonBitmap.Height;
          }
          else{
                    MonImage.Width=LargeurMax;
          }
}

'-----------------------------------------------------------------------
' VB.NET
'-----------------------------------------------------------------------

Sub Page_Load(sender As Object, e As EventArgs)
          Dim LargeurMax As New Integer = 500 
          Dim MonBitmap As New System.Drawing.Bitmap(Server.MapPath("")&"\\"&CheminVersImage)
          Dim MonImage As New System.Web.UI.WebControls.Image()
          MonImage.ImageUrl=UrlDeVotreImage

          If(MonBitmap.Width<=LargeurMax)                    
                    MonImage.Width=MonBitmap.Width
                    MonImage.Height=MonBitmap.Height
          Else
                    MonImage.Width=LargeurMax
          End If
End Sub

Conclusion :


Voilà c'était pas grand chose en fait ^^"
Pour le VB je répete que je ne suis pas sur du code vu que j'en ai pas fais depuis quelques mois !

Si vous avez du temps à perdre vous pouvez voir le code operationnel sur ma gallerie persos !
>> http://www.kawaiiworld.dynu.com/sevenyears/

S'il existe déjà un code expliquant ce que je viens de faire, je m'en excuse !

Ciao!

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.