Edition metatag fichier jpg

Résolu
survcopt Messages postés 224 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 13 mai 2022 - 23 sept. 2008 à 15:16
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 - 10 nov. 2008 à 23:15
Salut,
Lorsque je sauvegarde mon image en modifiant les PropertyItem j'ai une erreur de ce type : "Une erreur générique s'est produite dans GDI+."
Erreur que je n'ai pas si je charge et sauvegarde le fichier sans modif
Voici le bout de code problématique

        private void AddExifTags()
        {
            try
            {
                Encoding encoding1 = Encoding.UTF8;
                Image img = new Bitmap(CurrentImageFileName);
                PropertyItem[] item = new PropertyItem[0]; //  AllCurrentProperties[0];
                ExifClass FonctionSetExif = new ExifClass(CurrentImageFileName);
                FonctionSetExif.SetExifTextProperty(0x10F, img, FonctionSetExif.EncodeAsciiValue(string.Format(txtMake.Text) + "\0")); //Make
                img.Save(CurrentImageFileTmpName);

            }
            catch (Exception exception1)
            {
                MessageBox.Show("Error when saving: " + exception1.Message);
            }
        }

        public void SetExifTextProperty(int id, Image img, byte [] text)
        {
            Encoding encoding1 = Encoding.UTF8;
            PropertyItem propitem = this.CreatePropertyItem(ref img, id);
            propitem.Type = 2; //Spécifie que Value est une chaîne terminée par le caractère NULL.
            propitem.Len = text.Length;
            propitem.Value = text;
            img.SetPropertyItem(propitem);
        }

public PropertyItem CreatePropertyItem(ref Image img, int id)
        {
            PropertyItem item3;
            try
            {//verifie si le tag existe
                PropertyItem item1 = img.GetPropertyItem(id);
            //si il exite on le vide
                for (int i = 0; i < item1.Len; ++i)
                {
                    item1.Value[i] = Convert.ToByte ('\0');
                }
                item3 = item1;
            }
            return item3;
        }
Le metatag existe deja dans le fichier jpeg que je veux modifier les PropertyItem se modifient correctement mais à la sauvegarde j'ai une erreur et un fichier null
Je fais ma sauvegarde avec un nom autre que le fichier chargé car j'ai vu dans les post les problèmes de handles avec des fichiers en cours.
Merci pour votre aide

www.survey-copter.com

2 réponses

survcopt Messages postés 224 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 13 mai 2022 3
23 sept. 2008 à 16:45
Voici une solution qui fonctionne

http://www.eggheadcafe.com/articles/20030706.asp

www.survey-copter.com
3
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
10 nov. 2008 à 23:15
0
Rejoignez-nous