Frage

Ich würde wirklich schätzen, wenn Sie könnte Licht auf dieses problem.Ich habe 2 Bilder, eins wurde erstellt von TIF-Datei mit Metadaten, die andere ist eine in-memory-Bild wird als jpeg.Dann benutze ich diese routine zur übertragung von exif-Metadaten aus dem ersten Bild zu dem zweiten (den, der von erstellt von tif-Datei, um das Bild im Speicher):

For Each _p In image1.PropertyItems
   image2.SetPropertyItem(_p)
Next

Und das funktioniert völlig in Ordnung.Alle exif-Elemente sind erfolgreich kopiert.Ich bestätigte dies mit Uhren, die in den debug-Modus.Das problem kommt, wenn Sie sparen image2 als jpeg mit diesem:

    Dim eps As EncoderParameters = New EncoderParameters(1)
    eps.Param(0) = New EncoderParameter(Encoder.Quality, 85)
    Dim ici As ImageCodecInfo = GetEncoderInfo("image/jpeg")
    image2.Save("C:\1.jpg", ici, eps)

Nur sehr wenige EXIF-Eigenschaften gespeichert sind image2 jpeg-Datei jedoch, und zwar nur, Kamera und Kamera-Hersteller.Aber Wenn ich speichern image2 als TIF -, die alle Eigenschaften aus der ursprünglichen tif dort sein wird.Kann jemand erklären, warum das so ist?

Vielen Dank.

War es hilfreich?

Lösung

Werfen Sie einen Blick auf Exiv2Sharp - diese wrapper Exiv2 sollte, was Sie suchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top