IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

[vb.net] Redimmensionner image


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 280
    Par défaut [vb.net] Redimmensionner image
    Bonjour, je n'arrive pas a changer la dimmenssion d'une image avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
     Dim pictbox As New PictureBox
            Dim img_url As String = Server.MapPath("~/uploads/" & code_url & "/") + System.IO.Path.GetFileName(fup.PostedFile.FileName)
            ' Créer le FileStream sur le fichier 
            Dim MyStream As FileStream = New FileStream(img_url, FileMode.Open)
     
            ' affecter l'image à pictureBox
                   pictbox.Image = Drawing.Image.FromStream(MyStream)
            pictbox.SizeMode = PictureBoxSizeMode.StretchImage
     
            Dim height As Integer
            Dim width As Integer
            Dim W As Integer
            Dim H As Integer
            Dim coef As Double
            height = pictbox.Image.Height
            width = pictbox.Image.Width
     
           'ici je calcule les nouvelles dimmension 
    ' ressor donc H et W
     
    'ceci change la taille de la pictbox mais ne change pas la taille de l'image donc c'est pas bon
            pictbox.Height = H
            pictbox.Width = W
     
            pictbox.Update()
            Try
                If type_file = ".png" Then
                    pictbox.Image.Save(Server.MapPath("~/uploads/" & code_url & "/") + name_vig_file, Imaging.ImageFormat.Png)
                ElseIf type_file = ".jpg" Or type_file = ".jpeg" Then
                    pictbox.Image.Save(Server.MapPath("~/uploads/" & code_url & "/") + name_vig_file, Imaging.ImageFormat.Jpeg)
                ElseIf type_file = ".gif" Then
                    pictbox.Image.Save(Server.MapPath("~/uploads/" & code_url & "/") + name_vig_file, Imaging.ImageFormat.Gif)
                End If
     
            Catch ex As Exception
                Console.WriteLine(ex.Message)
     
            End Try
     
            MyStream.Close()
            ' libérer les ressources (permettra de supprimer le fichier plus loin)
            Return True
    Je n'arrive donc pas a affecter H et W a l'image pour la redimmensionner !
    Merci de m'aider je galère vraiment là :'( !

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    normal, pour redimensionner une image c'est un peu plus compliqué

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim ImgRedimensionnée as new bitmap(newWidth, newHeight)
    dim g as graphics = graphics.fromimage(ImgRedimensionnée)
    g.Drawimage(image_de_base, divers_paramètres)
    ImgRedimensionnée.save()
    à la place de [divers_paramètres] il faut utiliser la surcharge avec un rectangle source et un rectangle de destination (qui sont les rectangles de 0,0 à img.width,img.height pour la source et la dest avec les nouvelles dimensions)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 280
    Par défaut
    Bonjour, merci de ta réponse, étant qu'en deuxième année pourrai tu m'expliquer un peu plus simplement s'il te plait ? parce que la je vois pas quoi en faire du grapic ...

    a la place de pictbox.image.save il faut que je mettre graphic.save ?

    je ne voit pas ce que tu veut dire par rectangle source etc ...

    merci :p

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    je t'ai mis quasiment tout le code

    pour redimensionner une image, il faut en créer une nouvelle à la nouvelle dimension, créer un graphics lié à cette nouvelle image
    dessiner l'image de base qu'on a sur le graphics avec le nouvelle taille
    ensuite l'image créée peut être sauvegarder

    drawimage a 30 surcharges, il faut en utiliser une qui demande srcrect et destrect (il suffit de lire l'intellisense)

    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim srcrect as new rectangle (0,0,picturebox.image.width,picturebox.image.height)
    dim destcrect as new rectangle (0,0,newWidth,newHeight)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 280
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
     Dim ImgRedimensionnée As New Bitmap(W, H)
            Dim g As Graphics = Graphics.FromImage(ImgRedimensionnée)
            g.DrawImage(pictbox.Image, pictbox.DisplayRectangle.Location)
     
     
            Try
                If type_file = ".png" Then
                    ImgRedimensionnée.Save(Server.MapPath("~/uploads/" & code_url & "/") + name_vig_file, Imaging.ImageFormat.Png)
                ElseIf type_file = ".jpg" Or type_file = ".jpeg" Then
                    ImgRedimensionnée.Save(Server.MapPath("~/uploads/" & code_url & "/") + name_vig_file, Imaging.ImageFormat.Jpeg)
                ElseIf type_file = ".gif" Then
                    ImgRedimensionnée.Save(Server.MapPath("~/uploads/" & code_url & "/") + name_vig_file, Imaging.ImageFormat.Gif)
                End If
     
            Catch ex As Exception
                Console.WriteLine(ex.Message)
     
            End Try
    ici j'ai remplacé divers_parametre par pictbox.displayrectangle, mais ducoup au final j'ai que la partie en haut à gauche de mon image et non une image redimmensionné !!!!

    Je vais essayer ce que tu vien de me donner comme infos, mais je vois pas ou m'en servir.

    Merci

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
                    Dim imageFinale As System.Drawing.Image = Nothing
                    Dim g As System.Drawing.Graphics = Nothing
                        imageFinale = New System.Drawing.Bitmap(new_size.Width, new_size.Height)
                        g = System.Drawing.Graphics.FromImage(imageFinale)
                        Dim destRect As New System.Drawing.Rectangle(0, 0, new_size.Width, new_size.Height)
                        Dim srcRect As New System.Drawing.Rectangle(0, 0, IMG.Width, IMG.Height)
                        g.DrawImage(IMG, destRect, srcRect, System.Drawing.GraphicsUnit.Pixel)
     
              imageFinale.save(...)
    à adapter (IMG est l'image de ton picturebox, new_size est un drawing.size de la nouvelle taille désirée)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 280
    Par défaut
    ok je vais essayer je te tiens au courant ! reste dans les parages !

    merci

  8. #8
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    t'inquiète j'habite là lol
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 280
    Par défaut
    Ca fonctionne du tonnerre !!! Merci beaucoup !

    A rajouter dans le cours plasserre ou dans la FAQ ça pourra servir à beaucoup de monde !!!

    Merci beaucoup tu me sors de l'impasse !

  10. #10
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 280
    Par défaut
    Sinon pourrai tu m'expliquer l'utilité de srcrect et destrect ??? C'est bien beau que ça fonctionne mais si je comprend pas je serai pas le refaire ou l'adapté dans un autre projet ! merci

  11. #11
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    drawimage sert à dessiner une image sur un graphics
    il faut donner l'image à dessiner et après on a des paramètres au choix
    srcrect et destrect c'est pour savoir quelle partie de l'image mettre sur quelle partie du graphics
    donc on dit qu'on veut toute l'image d'origine sur toute l'image de destination
    les taille étant différentes, c'est ca qui fait le redimensionnement

    on pourrait très bien dire qu'on veut le rectangle 10,10,20,20 de l'image de départ sur le rectangle 0,0,50,50 sur l'image de destination
    ca prendrait donc un rectangle de 10 sur 10 de l'image de départ à partir du point 10,10
    et ca le grossirait pour qu'il fasse 50 sur 50 en haut à gauche de l'image de destination

    avec drawimage on peut faire aussi des rotations, des changement de couleur, des changement de teintes etc...

    pour passer d'une image 32bits à 24 bits on peut aussi le faire comme ca en créant le nouveau bitmap en 24 bits et en dessinant sans redimensionner
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    n'oublie pas de cocher résolu (bouton plus bas)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 280
    Par défaut
    Merci beaucoup, j'attendais ta réponse avant de mettre résolut !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. redimmensionner image
    Par bizet dans le forum 2D
    Réponses: 4
    Dernier message: 23/12/2005, 15h23
  2. [vb.net][databindings]image
    Par Alex35 dans le forum VB.NET
    Réponses: 15
    Dernier message: 17/11/2005, 13h32
  3. [VB.net] Embedded image ressource
    Par WriteLN dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/10/2005, 14h20
  4. [VB.NET]Champ image dans base de donnée access
    Par dankes dans le forum Windows Forms
    Réponses: 10
    Dernier message: 06/10/2005, 15h31
  5. [VB.NET]Champ image
    Par dankes dans le forum Access
    Réponses: 3
    Dernier message: 06/10/2005, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo