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

Windows Forms Discussion :

[Debutant] [VB.NET2.0] manipulation d'image


Sujet :

Windows Forms

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut [Debutant] [VB.NET2.0] manipulation d'image
    bonjour,

    je voudrais faire un explorateur pour visaliser mes images.
    Ma fenetre pricipale serait divisé en 3 sections :
    1- un volet gauche : affichage comme dans l'explorateur windows pour naviguer dans les fichiers
    2- un volet droit en haut : une zone qui affiche les images du repertoire selectionné avec des vignettes
    3- un volet droit bas : une zone qui affiche en grand l'image selectionnée

    je n'ai jamais manipuler d'image en vb.net : quels controles faut-il utiliser pour les différentes sections ?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 57
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par Emcy
    1- un volet gauche : affichage comme dans l'explorateur windows pour naviguer dans les fichiers
    Un TreeView que tu remplis toi-même (fais une recherche sur ce forum, il y a un exemple qui a été posté)

    Citation Envoyé par Emcy
    2- un volet droit en haut : une zone qui affiche les images du repertoire selectionné avec des vignettes
    Une ListView en mode Tile

    Citation Envoyé par Emcy
    3- un volet droit bas : une zone qui affiche en grand l'image selectionnée
    Une PictureBox

    Et pour séparer les trois volets, tu peux utiliser deux SplitContainer


    Bon Courage

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    merci pour ton aide.

    Pour l'explorateur, j'ai cherché sur le forum mais je n'ai pas trouver d'explorateur complet tout fait (en generale, les codes cité sont des versions simplifiées de l'explorer windows) : ça doit bien exister un composant .net (gratuit) que tu es juste à poser dans ton userform, non ?

    j'ai commencer à utiliser la listview mais rien ne s'affiche, pourquoi ?
    Dim ImgLst as new ImageList()

    ImgLst.Images.Add(Image.FromFile("C:\Dll Dotnet\test.jpg"))
    ImgLst.Images.Add(Image.FromFile("C:\Dll Dotnet\test.jpg"))
    ImgLst.Images.Add(Image.FromFile("C:\Dll Dotnet\test.jpg"))

    Me.listView1.LargeImageList = ImgLst
    Me.listView1.SmallImageList = ImgLst

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 57
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par Emcy
    merci pour ton aide.

    Pour l'explorateur, j'ai cherché sur le forum mais je n'ai pas trouver d'explorateur complet tout fait (en generale, les codes cité sont des versions simplifiées de l'explorer windows) : ça doit bien exister un composant .net (gratuit) que tu es juste à poser dans ton userform, non ?
    C'est malheureusement ce que je reproche à dotNet : un peu pauvre en composant, même s'il reste assez facile d'en créer soi même.

    j'ai commencer à utiliser la listview mais rien ne s'affiche, pourquoi ?
    Tu remplis seulement la liste d'image, il te faut remplir la collection Items de la ListView

  5. #5
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    et comment on fait ?

    ça fait quoi ça ?
    Me.listView1.LargeImageList = ImgLst

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 57
    Points : 57
    Points
    57
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.listView1.LargeImageList = ImgLst
    tu indiques à listView1 que tu vas utiliser ImgLst pour les images

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String fic = "C:\\toto.png"
    Image img = Image.FromFile( "C:\\Toto.png" )
    imageList.Images.Add( fic, img )
    j'ajoute l'image avec comme clé le chemin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    listView.Items.Add( fic,  "toto.png", fic )
    ici, je rajoute l'élément avec comme clé interne son chemin complet, le nom affiché et la clé de l'image

  7. #7
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    merci, j'avance mais c'est pas encore ça
    Dim MonChemin As String
    Dim Img As Image
    Dim ImgLst as new ImageList()

    MonChemin = "C:\Dll Dotnet\test.jpg"
    Img = Image.FromFile(MonChemin)
    imgLst.Images.Add( MonChemin, Img )
    imgLst.Images.Add( MonChemin, Img )
    imgLst.Images.Add( MonChemin, Img )

    listView1.LargeImageList = imgLst
    listView1.Items.Add( MonChemin, "mon Image", MonChemin )
    listView1.Items.Add( MonChemin, "mon Image", MonChemin )
    listView1.Items.Add( MonChemin, "mon Image", MonChemin )
    => ça m'affiche mes images en tout petit avec le nom à droite : je voudrais avoir des imgae d'une cinquantaine de pixel avec le nom en dessous.
    De plus, à chaque image, il y a un retour à la ligne alors que je voudrais quelles soient les une à la suite des autres avec retour à la ligne lorsqu'il n'y a plus de place.

  8. #8
    Membre du Club Avatar de cacalex
    Inscrit en
    Avril 2005
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 54
    Points : 50
    Points
    50
    Par défaut
    Regarde ceci :
    http://www.codeproject.com/vb/net/VbNetExpTree.asp

    C'est un composant .Net exatement comme l'explorateur windows...

  9. #9
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    merci cacalex, c'est exactement ce que je recherchais à part qu'il n'y a pas de menu contextuel pour faire des copier/coller, renomer, etc (mais on ne va pas faire la fine bouche )
    => est-ce qu'au moins j'ai le droit d'utiliser ce composant dans une application commercial ?

    quelqu'un à une solution pour ma listview (maintenant j'arrive à les positionner en ligne mais j'ai toujours les autres problemes) .

  10. #10
    Membre du Club Avatar de cacalex
    Inscrit en
    Avril 2005
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 54
    Points : 50
    Points
    50
    Par défaut
    À ma connaissance, tu as le droit de l'utiliser dans une appli commerciale...
    En cas de doute, envoi un mail à l'auteur pour le lui demander

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 57
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par Emcy
    merci, j'avance mais c'est pas encore ça


    => ça m'affiche mes images en tout petit avec le nom à droite : je voudrais avoir des imgae d'une cinquantaine de pixel avec le nom en dessous.
    De plus, à chaque image, il y a un retour à la ligne alors que je voudrais quelles soient les une à la suite des autres avec retour à la ligne lorsqu'il n'y a plus de place.

    Là, tu devrais lire la doc !

  12. #12
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    j'ai trouver pour la taille de l'image par contre j ene vois pas pourquoi il faut utiliser Tiles : LargeIcon marche aussi bien...

  13. #13
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    voici mon code pour afficher mes image dans ma listview => ça m'affiche tous les fichiers jpg d'un repertoire :
    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
    Sub AfficherListeImages(MonChemin As String)
    		listView1.Clear
     
    		If Directory.Exists(MonChemin) Then
    	        Dim MyDirectoyInfo As New DirectoryInfo(MonChemin)
    			Dim MesFichiers() As FileInfo 
     
    			'MesFichiers = MyDirectoyInfo.GetFiles("*.jpg",SearchOption.AllDirectories)
    			MesFichiers = MyDirectoyInfo.GetFiles("*.jpg")		
     
    			Dim Fichier As FileInfo
    			Dim Img As Image
    			Dim ImgLst as new ImageList()
      			Dim i As Integer
     
    			ImgLst.ImageSize = New Size(100, 100)
    			i = 0
    			For Each Fichier In MesFichiers				
    				Img = Image.FromFile(Fichier.FullName)
    				ImgLst.Images.Add(i, Img )
    				i = i + 1
    			Next Fichier
     
    			listView1.LargeImageList = imgLst
    			i = 0
    			For Each Fichier In MesFichiers
    				listView1.Items.Add(Fichier.Name,  "Image" & i, i)
    				i = i + 1
    			Next Fichier
    		End If
    	End Sub
    => lorsque je lis dans un fichier où il y a beaucoup d'images (ex:2000), pendant la mise a jour de mon listview, la memoire du PC augmente considerablement (+ de 1Go) : une fois la mise à jour effectué, la memoire redescent à un niveau normale (- de 300Mo) => est-ce normale ? y a t-il un moyen d'accelerer le code et de diminué les ressources utilisée (+ de 1Go juste pour visualiser des vignettes, ça fait beaucoup) ?

Discussions similaires

  1. [SWING] Manipulation d'images
    Par TylerKnoxx dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 13/09/2005, 22h33
  2. [Debutant] Récupérer le nom d'une image
    Par Djoul dans le forum Débuter
    Réponses: 4
    Dernier message: 30/05/2005, 09h52
  3. [omondo] [debutant] transformation de doc uml en image
    Par htcrusoe dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 10/08/2004, 10h14
  4. [SDL] manipulation d'image
    Par zdra dans le forum OpenGL
    Réponses: 4
    Dernier message: 28/02/2004, 16h56

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