私はMagick.NETライブラリを使用してexif値を読み取ります。最高のパフォーマンスを得るために、私はメソッド(thisを参照)を使用しています。イメージメタデータで作業する場合、実際のイメージコンテンツは必要ないからです。イメージ内の既存のexifプロファイルにタグ値を追加
しかし、この値が存在しない場合、exifタグの値を書き込む必要があります。
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);
}
}
}
しかし、このコードは、 EXIFにタグ値を書いていない:私は何をしようとしています。 (この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();
...
}
しかし、このデコード全体画像コンテンツを、私は「コンテンツに依存しない」タグの値を変更するためにそれを必要としませんCopyrightまたはDateTimeDigitizedのようになります。
質問です:どのように編集このEXIFタグ画像全体のコンテンツをロードしませんか?
exif全体のプロファイル(image.AddProfile(profile, true)
)を書き直す必要がありますか、プロファイルを編集するだけの方法がありますか?
このような疑いがありますが、情報を確認していただきありがとうございます。情報のJPEG仕様を取得した後は、予期せぬ結果を伴うJPEGへの手動介入ではなく、特定のサポートツールを使用することが確実であると結論づけました:)最後の質問:技術的に可能な場合 - あるチャンスは Magick.NETの 'exif edit with content loading'のような機能ですか? – Sam
私はこの質問に答える答えを更新しました。 – dlemstra
さて、この機能は思ったほど実装が簡単ではないようですので、しばらくの間、exifを増やすための他の方法があります。しかし、私たちは将来この機能を見ることができてうれしいです:)とにかく、あなたのおかげで答え、Magick.NETのすべて! – Sam