So erhalten und legen Sie Eigenschaften für ein Bild fest

7

Ich versuche diese zwei Methoden der Bitmap oder des Bildes zu verstehen. Eins ist .SetPropertyItem() und das andere ist .GetPropertyItem() .

Ich bin völlig verwirrt darüber, wie die Dokumentation besagt, dass ich eine Eigenschaft einstellen soll.

Aus der Microsoft-Dokumentation heißt es, dass wir wählen sollten ein Eigenschaftenelement durch eine ID eines Eigenschaftenelements, das bereits im Abbild vorhanden ist, geben Sie diesem Eigenschaftenelement eine neue ID, legen Sie die Eigenschaften fest, und legen Sie dann das Abbildeigenschaftenelement mit dem abgerufenen Eigenschaftenelement fest.

Das ist so komisch, aber was mich wirklich dazu bringt, ist, dass wir die ID des Eigenschaftselements nicht auf eine ID setzen können, sondern auf eine ID, die bereits in der Eigenschaftselement-ID-Liste existiert .

Was verwirrend ist, ist, dass ich eine Eigenschaft verwende, die bereits auf andere Weise festgelegt wurde, und überschreibe ihre Eigenschaft und füge sie dann mit einer anderen vorhandenen ID aus der Liste der Eigenschaften-IDs wieder zurück.

Was fehlt mir hier? Gibt es keine Möglichkeit, einfach ein neues PropertyItem zu erstellen und dann dieses Property Item mit einer beliebigen ID zum Bild oder zur Bitmap hinzuzufügen?

Hier ist ein Beispiel von dem, worüber ich spreche. Die ID, die 20752 ist, ist eine Eigenschaft, die das Bild bereits hat, und wenn ich die ID des PropertyItem festlege, dass 20753 eine ID ist, die das Image auch hat.

Dadurch wird die Eigenschaft erfolgreich festgelegt.

%Vor%

Dadurch wird das PropertyItem erfolgreich abgerufen.

%Vor%

Gibt es da einen Weg, wie ich ein neues PropertyItem mit meiner eigenen ID erstellen kann, ohne all diese komischen Sachen machen zu müssen? Oder verpasse ich hier etwas?

Und oder, ist die bessere Möglichkeit, andere Arten von Eigenschaften für ein Bild oder eine Bitmap festzulegen? Ich bin auf der Suche nach einem grundlegenden Weg, um Informationen zu speichern und zu einem späteren Zeitpunkt abrufen.

Was mache ich hier falsch?

    
Filling The Stack is What I DO 16.09.2013, 04:41
quelle

1 Antwort

27

Dies ist etwas spät, aber es ist möglich, eine neue PropertyItem-Instanz zu erstellen, ohne den Fehler zu ertragen, einen aus einer anderen Quelle zu erstellen:

%Vor%

Dadurch wird der Mangel des Konstruktors umgangen, der in PropertyItem angegeben wurde (was mich daran hinderte, System.Reflection zu verwenden)

    
ne1410s 06.08.2014, 14:17
quelle