Redimentionner une image en vb.net

Soyez le premier à donner votre avis sur cette source.

Snippet vu 14 391 fois - Téléchargée 33 fois

Contenu du snippet

Ceci est seulement un petit truc pour éviter de chercher, donc c'est réellement facile, falait seulement chercher dans les fonctions reliées à une varaible de type image. Comment redimentionner une image (en même temps, j'ai mis le code pour loader une image avec un lien vers un fichier)

Source / Exemple :


Dim image As System.Drawing.Image
image = System.Drawing.Bitmap.FromFile("image/image.gif")
PictureBox.Image = image.GetThumbnailImage(witdh, height, Nothing, Nothing)

Conclusion :


les 2 champs nothing sont pas nécessaire. Ils servent quand il y a un problème, afficher dequoi, un peu comme dans internet, une image load pas, le fichier avec un X dessus pis du texte à côté

thumbWidth
The width, in pixels, of the requested thumbnail image.

thumbHeight
The height, in pixels, of the requested thumbnail image.

callback
A Image.GetThumbnailImageAbort delegate. In GDI+ version 1.0, the delegate is not used. Even so, you must create a delegate and pass a reference to that delegate in this parameter.

callbackData
Must be IntPtr.Zero.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
6
Date d'inscription
lundi 4 décembre 2000
Statut
Membre
Dernière intervention
13 avril 2015

et dans le cas ou on a ume application web
Messages postés
13
Date d'inscription
lundi 7 juillet 2003
Statut
Membre
Dernière intervention
8 mai 2009

Pour répondre aux posts précédents (même si c'est un peu tard ;-) :
l'aide de la fonction GetThumbnailImage avertit que la fonction renvoie la miniature de l'image si elle est incorporée dans l'image ou la crée avec un risque de détérioration de la qualité si la miniature n'existe pas.
Pour redimensionner l'image sans perte de qualité, il faut utiliser la fonction DrawImage :

Public Function image_echelle(ByVal ImaSource As Image, ByVal xPixelTotal As Int32, ByVal yPixelTotal As Int32) As Bitmap
Dim nouvImage As New Bitmap(xPixelTotal, yPixelTotal)
nouvImage.SetResolution(ImaSource.HorizontalResolution, ImaSource.VerticalResolution)
Dim graph As Graphics = Graphics.FromImage(nouvImage)
Dim rect As New Rectangle(0, 0, xPixelTotal, yPixelTotal)

graph.DrawImage(ImaSource, rect)
Return nouvImage
End Function

C'est une variante du code pour rogner l'image que j'ai trouvé ici : http://www.vbfrance.com/codes/ROGNER-IMAGE_38867.aspx
Ne pas oublier de rajouter la ligne SetResolution sinon on a la résolution d'écran.
Messages postés
15
Date d'inscription
jeudi 11 novembre 2004
Statut
Membre
Dernière intervention
2 juin 2009

Je l'ai appris dans le cadre de mon stage y'a pas bien longtemps également. Si je trouve une source qui prends en compte la conservation des paramètres de l'image, je la mettrais sur le site. Mais j'ai toujours rien trouvé après 3 jours de recherche. J'ai donc opté pour ta solution temporairement.
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
4
ça tu me l'apprend. En fait, je m'en suis toujours servis pour afficher à l'écran ou pour l'impression
Messages postés
15
Date d'inscription
jeudi 11 novembre 2004
Statut
Membre
Dernière intervention
2 juin 2009

L'utilisation de Thumbnail fait perdre les caractéristiques propre au fichier. En gros, j'ai une profondeur de couleur en entrée de 1 et je souhaite réduire de moitié la taille de mon image, thumbnail retourne une image de profondeur de couleur 32. Ce qui fait que la taille du fichier augmente considérablement. Je pense que cette fonctionne fait passer des images monochromes en images couleur. Pas terrible lorsque la taille du fichier est un critère important.
Afficher les 12 commentaires

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.