J'ai une liste d'images et souhaitez ajouter un répertoire d'images à la liste des images de mon code. Comment ferais-je cela? Lorsque j'exécute le code:
'Load all of the items from the imagelist For Each path As String In Directory.GetFiles("Images\LanguageIcons\") imlLanguagesIcons.Images.Add(Image.FromFile(path)) Next
5 Réponses :
Comme si ceci où EDIT fort>: comme ceci: p> aimage code> est une image code> variable p>
Mais le fichier a peut-être une quantité variable de fichiers image. Comment puis-je ajouter tous les éléments. Je sais comment fait ce qui est ci-dessus
Vous recherchez peut-être la méthode addstrip code>.
System.IO.Directory.getCurrentTrectory () & "Images \ LanguageIntons"
Voulez-vous dire que vous essayez d'ajouter chaque fichier image dans un dossier? Si tel est le cas, boucle sur un appel à répertoire.getfiles code>
Vous n'avez pas besoin d'ajouter Directory.getCurrentDirectory () code>.
Je ne suis pas sûr de l'endroit où le fichier est autre que le fait qu'il soit dans le répertoire actuel. Si ce n'est pas ça va jeter et error
Il a jeté une exception exceptionnelle
Vous avez dit qu'il y a 14 images. Quelles sont leurs tailles et leurs profondeurs de couleur? Si je ne me trompe pas, les images chargées dans un imageur sont décompressées. Donc, un fichier 640x480 24BPP consommera 921600 octets. Si vos images sont grandes, elles pourraient consommer une grande quantité de mémoire.
La taille la plus grande est 124x124. Toutes ces images étaient déjà dans la liste des images, mais je les ai supprimées car je souhaite le faire en code car je souhaite que l'utilisateur puisse ajouter de ses propres images dans le fichier.
Documentation pour image.fromfile (qui est lié à votre itrestream) dit que cela lancera une exception exceptionnelle
si le fichier n'est pas un Format d'image valide strong> ou si GDI + ne prend pas en charge le format de pixel. Est-ce possible, vous essayez de charger un type d'image non pris en charge? p> Source: Jim Mischel Out of Memory Exception lors du chargement d'images P>
Voici ma méthode: p>
xxx pré> blockQuote>
image.Dispose () corrige l'exception hors mémoire. L'approche détaillée que j'ai utilisée est (bien que surtomille pour certains):
Vous obtenez une erreur de mémoire hors mémoire car elle essaie de charger THUMBS.DB à la fin de votre "pour chacun". Cela s'occupait de moi pour moi p>
pour chaque chemin comme chaîne dans le répertoire.getfiles ("\ imagesterver \") Si Instr (chemin, "pouces") = 0, alors Imagelist1.images.add (image.fromfile (chemin)) Suivant p>
Il y a probablement une manière plus élégante .... p>
Désolé je suis en retard, veuillez essayer ce monsieur ..
Dim path_photo_member As String = "D:\image_data\member\" Me.ImageList_rs.Images.Clear() If System.IO.Directory.Exists(path_photo_member) Then For Each path As String In System.IO.Directory.GetFiles(path_photo_member) If System.IO.File.Exists(path) Then If LCase(path).Contains(".png") Or LCase(path).Contains(".jpg") Or LCase(path).Contains(".jpeg") Then Me.ImageList_rs.Images.Add(Image.FromFile(path)) End If End If Next End If