Ich verwende Magick.NET Bibliothek zum Lesen von Exif-Werten. Für die höchste Leistung verwende ich die Methode Ping
(siehe this), da ich bei der Arbeit mit einigen Bildmetadaten keinen tatsächlichen Bildinhalt benötige.Add Tag-Wert zu bestehenden Exif-Profil in Bild
Aber jetzt muss ich Exif-Tag-Wert schreiben, wenn dieser Wert nicht existiert. Was ich versuche zu tun:
public static void Test()
{
var path = @"C:\image.jpg";
using (var image = new MagickImage())
{
image.Ping(path);
var profile = image.GetExifProfile();
var copyright = profile.Values.FirstOrDefault(x => x.Tag == ExifTag.Copyright);
if (copyright != null)
{
Trace.WriteLine("Copyright: " + copyright);
}
else
{
Trace.WriteLine("Write Copyright data");
profile.SetValue(ExifTag.Copyright, "Example text");
image.AddProfile(profile, true);
image.Write(path);
}
}
}
Aber dieser Code ist nicht Schreiben Tag-Wert exif. Ich kann erfolgreich Tag-Wert schreiben, wenn Datei eine andere Art und Weise zu öffnen (wie in diesem answer):
var path = @"C:\image.jpg";
// Read image with content
using (var image = new MagickImage(path))
{
// image.Ping(path) - no more need
var profile = image.GetExifProfile();
...
}
Aber diese dekodieren ganze Bildinhalt, ich brauche es nicht für Werte von ‚content-unabhängigen‘ Tags zu ändern wie Copyright oder DateTimeDigitated.
Die Frage ist: wie man bearbeiten dieses EXIF-Tags ohne Laden ganzen Bildinhalt?
Und muss ich ganze Exif Profil umschreiben (image.AddProfile(profile, true)
) oder gibt es eine Möglichkeit, nur Profil bearbeiten?
Ich vermutete so etwas, aber danke für die Bestätigung der Informationen. Nachdem ich die JPEG-Spezifikationen erhalten habe, bin ich zu dem Schluss gekommen, dass es definitiv besser ist, ein bestimmtes, gut unterstütztes Tool anstelle von manuellen Eingriffen in jpeg zu verwenden. Letzte Frage: Wenn es technisch möglich ist - wie sehen die Chancen aus? Funktion wie 'exif edit ohne Inhalt laden' in Magick.NET? – Sam
Ich habe die Antwort aktualisiert, um diese Frage zu beantworten. – dlemstra
Nun, diese Funktion scheint nicht so einfach zu implementieren, wie ich dachte, also werden wir eine andere Möglichkeit finden, die Exif-Bearbeitung für eine Weile zu verstärken. Aber wir werden uns freuen, dieses Feature in Zukunft zu sehen :) Trotzdem, vielen Dank für eure Antworten und für Magick.NET überhaupt! – Sam