Comment faire pour obtenir et définir propertyitems pour une image

J'essaie de comprendre ces deux méthodes de l'image ou de l'Image. Étant .SetPropertyItem() et l'autre étant .GetPropertyItem().

Je suis complètement confus quant à la façon dont la documentation dit que je suis pour définir une propriété de l'élément.

De la La Documentation De Microsoft il dit que nous devrions choisir une propriété de l'élément par un id d'une propriété de l'élément qui existent déjà dans l'image, donner une propriété de l'élément d'un nouvel ID, définissez les propriétés et définissez la propriété d'image de l'élément avec qui a récupéré la propriété de l'élément.

C'est tellement bizarre, mais ce qui est vraiment moi, c'est qu'il ne suffit pas de définir l'id de la propriété élément à n'importe quel ID, nous avons à définir la propriété id de l'élément à un code qui existent déjà dans la propriété id de l'élément de la liste.

Ce qui est déroutant, c'est que je suis en utilisant une propriété qui est déjà réglé par un autre moyen et supérieur de la c'est bien et puis l'ajouter à nouveau de l'image avec un autre IDENTIFIANT existant de la propriété id de liste.

Ce qui me manque ici? N'est-il pas un moyen de créer simplement un nouveau PropertyItem puis ajouter que la propriété de l'élément avec une ID de l'image ou image?

Voici un exemple de ce que je suis en train de parler. L'ID est de 20752 est un propertyitem que l'image a déjà fait, et lorsque j'ai mis l'ID de la PropertyItem que 20753 est un code que l'Image a ainsi.

Cela permettra de définir correctement la propriété item.

  private void Form1_Load(object sender, EventArgs e)
    {

        string path = Environment.CurrentDirectory + @"\sample.png";
        Image image = Image.FromFile(path);

        PropertyItem pi = image.GetPropertyItem(20752);

        pi.Id = 20753;

        pi.Type = 1;
        pi.Value = Encoding.UTF8.GetBytes("MyImageInfo");
        pi.Len = pi.Value.Length;
        image.SetPropertyItem(pi);

        image.Save(Environment.CurrentDirectory + @"\sample2.png");
    }

Cela permettra de récupérer correctement les PropertyItem.

  private void Form1_Load(object sender, EventArgs e)
        {

            string path = Environment.CurrentDirectory + @"\sample.png";
            Image image = Image.FromFile(path);

            PropertyItem propItem = image.GetPropertyItem(20753);
        }

Il y a moyen que je puisse créer un nouveau PropertyItem avec ma propre identité sans avoir à faire tous que des choses bizarres? Ou ai-je raté quelque chose ici?

Et ou, est la meilleure façon de définir d'autres types de propriété pour une image ou image? Je suis à la recherche d'un moyen de base pour enregistrer de l'information et de la récupérer à une date ultérieure.

Ce que je fais mal?

Il faut vraiment accepter @ne1410s réponse!

OriginalL'auteur Filling The Stack is What I DO | 2013-09-16