Bonjour à tous,
Voilà, comme certains d'entre vous l'aurons sûrement remarqué, je suis très actif ces derniers temps.
En fait cette fois, je voudrais savoir comment je peux faire pour enregistrer les modifications apportées à une image( par enregistrer qu'on se comprenne bien, écrire les modifications dans le même fichier).
Alors je vais vous expliquer la manière dont je procède pour ouvrir une image (j'ouvre de deux façons différentes, une fois une image seule, et une fois les images situées dans un répertoire spécifié par l'utilisateur).
Lors de l'ouverture d'un répertoire d'image, je place les noms des images dans une "ArrayList". Je procède de la sorte pour pouvoir parcourrir mes images en tant que miniatures dans mon applic.
Voici un screen de mon applic:
Voilà, lorsque je clique sur une image dans la barre de miniature, celle-ci s'affiche en temps qu'image principale.
J'ai déjà fais une option qui me permet de "sauver sous".
Maintenant, pour sauver l'image sur l'image de départ, je ne sais pas comment faire pour récupérer le nom de mon fichier image. Est ce que je dois repasser par mon ArrayList, ou est ce qu'il y a moyen de récupérer le nom d'une image?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 // // Enregistrer Sous // private void _mspfEnregistrerSous_Click(object sender, EventArgs e) { Bitmap Img = (Bitmap)_pbImage.Image; _sfdPrincipal.Title = "Enregistrer l'image sous..."; _sfdPrincipal.DefaultExt = "*.jpg"; if (_sfdPrincipal.ShowDialog() == DialogResult.OK) { _sfdPrincipal.AddExtension = true; Img.Save(_sfdPrincipal.FileName); } }
Une méthode du genre "<MonImage>.<GetFileName>" existe-t-elle?
Si je dois repasser par mon ArrayList, comment est ce que je pourrais faire pour comparer si l'image que j'ai en image principale correspond au nom du fichier? Je vais devoir ouvrir l'image de mon ArrayList et la comparer à l'image modifiée, mais vu qu'elle est modifiée, elles ne sauront pas être égale.
Quelqu'un pourrait-il me donné un conseil ou une marche à suivre?
Voici pour terminer l'ouverture d'une répertoire:
Les _pbMiniatureX étant bien sûr mes images se trouvant dans le fond de l'applic
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
44
45
46
47
48
49 // // Ouverture d'un répertoire d'images // private void _mspfOuvrirRep_Click(object sender, EventArgs e) { string CheminComplet; _sbpEtat.Text = "Ouverture d'un répertoire"; // afficher la boite de dialogue _fbdPrincipal.Description = "Ouverture d'un répertoire"; if (_fbdPrincipal.ShowDialog(this) == DialogResult.OK) { DirectoryInfo Di = new DirectoryInfo(_fbdPrincipal.SelectedPath); foreach (FileInfo Fi in Di.GetFiles("*.jpg")) { CheminComplet = _fbdPrincipal.SelectedPath + "\\"; CheminComplet = CheminComplet + Fi.Name ; ListeImage.Add(CheminComplet); } // place les 4 premières images dans les miniatures for (i = 0; i < 4 && i < ListeImage.Count; i++) { if (i == 0) { _pbMiniature1.Image = (Bitmap)Bitmap.FromFile(ListeImage[i].ToString()); _pbImage.Image = _pbMiniature1.Image; _pbMiniature1.Invalidate(); } else if (i == 1) { _pbMiniature2.Image = (Bitmap)Bitmap.FromFile(ListeImage[i].ToString()); _pbMiniature2.Invalidate(); } else if (i == 2) { _pbMiniature3.Image = (Bitmap)Bitmap.FromFile(ListeImage[i].ToString()); _pbMiniature3.Invalidate(); } else if (i == 3) { _pbMiniature4.Image = (Bitmap)Bitmap.FromFile(ListeImage[i].ToString()); _pbMiniature4.Invalidate(); } } } }.
Merci pour tout les conseils que vous pourrez me donner. si jamais vous avez besoin de plus de détails concernant l'applic, faites le moi savoir, je rajouterais ce qu'il faut.
Encore merci, richard_sraing
Partager