VB.NET Changer les dimensions d’une image

Problématique

Il ne s’agit pas de modifier la taille apparente d’une image dans un formulaire par exemple : trop facile ! Vous ne seriez pas arrivés sur mon site aussi utile et agréable que méconnu : il y a beaucoup de réponses sur le Net et certaines sont exactes !

Non, l’objectif ici est de « prendre » un fichier image quelconque (.JPG, .GIF, .PNG, …) et de la transformer en autre de taille différente … et même de type différent si ça vous chante !

Je vous sens heureux d’être là.

Solution

C’est tout bête mais il faut le trouver. Je vous indique les variables, vous y mettez ce que vous voulez. Désolé si les commentaires sont répétitifs mais au moins les choses seront claires.

On commence par :

Dim srcImage As String ‘ path du fichier d’origine
Dim dstImage as string ‘ path du fichier destination
Dim srcBitmap As New Bitmap(srcImage) ‘ bitmap dans lequel on placera l’image d’origine
Dim srcWidth As Integer = srcBitmap.Size.Width ‘ largeur de l’image d’origine
Dim srcHeight As Integer = srcBitmap.Size.Height ‘ hauteur de l’image d’origine
Dim dstWidth as integer ‘ largeur de l’image destination

Puis, si vous ne tenez pas spécialement à garder la proportionnalité :

Dim dstHeight as integer ‘ hauteur de l’image destination
Dim destBitmap As New Bitmap(srcBitmap, dstWidth, dstHeight) ‘ bitmap dans lequel on placera l’image destination

Ou, dans le cas plus fréquent où vous souhaitez conserver les proportions de l’image :

Dim scaleFactor As Double = cdbl(dstWidth) / CDbl(srcWidth) ‘ le scale factor (coefficient de proportionnalité en français)
Dim destBitmap As New Bitmap(srcBitmap, dstWidth, CInt(srcHeight * scaleFactor)) ‘ bitmap dans lequel on placera l’image destination

Et enfin, pour sauvegarder l’image dans un nouveau format

destBitmap.Save(dstImage, System.Drawing.Imaging.ImageFormat.[type image]) ‘ [type image] peut prendre les valeurs : Gif, Icon, Jpeg, Png, …
srcBitmap.Dispose() ‘ toujours laisser un endroit aussi propre en entrant qu’on l’a trouvé en arrivant
destBitmap.Dispose() ‘ là aussi : propre, on vous dit

ET LE TOUR EST JOUÉ ! ALORS ON DIT MERCI QUI ?

POUR EN SAVOIR PLUS : les derniers livres parus sur VB.NET sont sur

DerniersParus.com » VB.NET

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *