Kopieren die EXIF-Metadaten von TIF zu JPEG in C# / VB.NET
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.
Lösung
Werfen Sie einen Blick auf Exiv2Sharp - diese wrapper Exiv2 sollte, was Sie suchen.