Redimensionner une image via un facteur d'échelle [Résolu]

chocolatgc 34 Messages postés samedi 18 février 2006Date d'inscription 26 octobre 2012 Dernière intervention - 10 janv. 2012 à 11:46 - Dernière réponse : chocolatgc 34 Messages postés samedi 18 février 2006Date d'inscription 26 octobre 2012 Dernière intervention
- 10 janv. 2012 à 16:32
Bonjour à tous.

voici mon problème. Je souhaite redimensionner une image via un facteur d'échelle. J'ai commencé ce petit code mais je sèches sur l'application de l'échelle. Pouvez-vous m'aider ?

Merci

Private Function redimImage(ByVal CheminDeLimage As String, ByVal ration As Long)
Dim Img As Image
Dim ImgTransforme As Image

'Je charge mon image dans l'objet Img
Img = Image.FromFile(CheminDeLimage)
'Je place l'image de base dans l'image transformée
ImgTransforme = Img.Clone
'je libère la source.
Img.Dispose()
'Je transforme l'image de destination
?????????????????????????????????????????
'Je sauvegarde en écrasant la source
ImgTransforme.Save(CheminDeLimage)
'Je libère l'image transformée
ImgTransforme.Dispose()

End Function
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 10 janv. 2012 à 15:20
3
Merci
En gros :

   Private Sub redimImage(ByVal CheminDeLimage As String, ByVal Ratio As Int32)
        Dim ImgSrc As Image = Image.FromFile(CheminDeLimage)
        Dim ImgDst As Image = New Bitmap(Convert.ToInt32(ImgSrc.Width * Ratio), Convert.ToInt32(ImgSrc.Height) * Ratio)
        Dim g As Graphics = Graphics.FromImage(ImgDst)
        g.DrawImage(ImgSrc, 0, 0, ImgDst.Width, ImgDst.Height)
        ImgSrc.Dispose()
        g.Dispose()
        ImgDst.Save(CheminDeLimage)
        ImgDst.Dispose()
    End Sub



Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 76 internautes ce mois-ci

Commenter la réponse de Renfield
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 10 janv. 2012 à 11:58
0
Merci
DrawImage....

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
chocolatgc 34 Messages postés samedi 18 février 2006Date d'inscription 26 octobre 2012 Dernière intervention - 10 janv. 2012 à 14:01
0
Merci
Merci pour la piste, mais je n'affiche pas l'image. A moins que je n'ai pas compris ton message.
Commenter la réponse de chocolatgc
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 10 janv. 2012 à 14:28
0
Merci
DrawImage permet de dessiner une image sur un Graphics
on ne parle pas d'affichage écran... sauf si ce Graphics est lié à un Device Context.

charge ton Image
crée une Image aux dimensions adéquates
créé un Graphics a partir de ton image cible (ce que tu dessine le sera sur ton image)
ensuite, dessine (le fameux DrawImage) ton image sur ton Graphics, suivant le Ratio souhaité

enfin, sauvegarde ton Image...

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
chocolatgc 34 Messages postés samedi 18 février 2006Date d'inscription 26 octobre 2012 Dernière intervention - 10 janv. 2012 à 14:59
0
Merci
Voici le début en suivant ton process :
La dernière fonction ne passe pas je récupère une exception ...
merci pour ton aide


'Chargement de l'image
Dim ImageSource As Image
ImageSource = Image.FromFile(CheminDeLimage)

Dim Largeur As Long
Dim Hauteur As Long
'Lecture de sa taille
Largeur = ImageSource.Width
Hauteur = ImageSource.Height

'Crétaion du graphic sur la base de l'image redimensionnée
Dim GraphicsDestination As Graphics
GraphicsDestination.DrawImage(ImageSource, Largeur * ratio, Hauteur * ratio)
Commenter la réponse de chocolatgc
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 10 janv. 2012 à 15:15
0
Merci
- tu n'as pas instancié d'image destination,
- tu n'as pas instancié de Graphics

tu n'apelle pas bien DrawImage...

avec ce prototype, tu lui dit :
dessine mon image entière (sans resize) au point Largeur * ratio ; Hauteur * Ratio


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
chocolatgc 34 Messages postés samedi 18 février 2006Date d'inscription 26 octobre 2012 Dernière intervention - 10 janv. 2012 à 15:34
0
Merci
Vraiment merci, je suis loin d'avoir le niveau.

J'apprends, j'apprends ...
Commenter la réponse de chocolatgc
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 10 janv. 2012 à 16:01
0
Merci
validé (non testé ^^)

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
chocolatgc 34 Messages postés samedi 18 février 2006Date d'inscription 26 octobre 2012 Dernière intervention - 10 janv. 2012 à 16:32
0
Merci
si si ça marche, j'ai juste modifié mon ratio pour définir un ratio inférieur à 1. Je vais l'ajuster également pour ne plus écraser les images sources.

Encore merci
Commenter la réponse de chocolatgc

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.