Если кому то понадобится менять exif фото, решил таким образом:
Юзинг и эти же добавляем в общий код:
using System.IO;
using System.Globalization;
using System.Windows.Media.Imaging;
В ссылки Gag добавляем:
System.IO
System.Globalization
PresentationCore
PresentationCore.resourses
WindowsBase
System.Xaml
Формат даты 2018:02:26 11:20:30 ,
сам сниппет:
//путь к файлу
var s = project.Variables["contragent_photo"].Value;
var data = project.Variables["data_exif"].Value;
//Открываем файл
FileStream Foto = File.Open(s, FileMode.Open, FileAccess.Read); // открыли файл по адресу s для чтения
BitmapDecoder decoder = JpegBitmapDecoder.Create(Foto, BitmapCreateOptions.IgnoreColorProfile, BitmapCacheOption.Default); //"распаковали" снимок и создали объект decoder
BitmapMetadata TmpImgEXIF = (BitmapMetadata)decoder.Frames[0].Metadata.Clone(); //считали и сохранили метаданные
//Обновляем exif
//Меняем дату в эксиф (/app1/ifd/exif/{ushort=36867} - контейнер с датой)
TmpImgEXIF.SetQuery("/app1/ifd/exif/{ushort=36867}", data);
//сохраняем новый снимок
JpegBitmapEncoder Encoder = new JpegBitmapEncoder();//создали новый энкодер для Jpeg
Encoder.Frames.Add(BitmapFrame.Create(decoder.Frames[0], decoder.Frames[0].Thumbnail, TmpImgEXIF, decoder.Frames[0].ColorContexts)); //добавили в энкодер новый кадр(он там всего один) с указанными параметрами
string NewFileName = s + "+new.jpg";//имя исходного файла +GeoTag.jpg
using (Stream jpegStreamOut = File.Open(NewFileName, FileMode.CreateNew, FileAccess.ReadWrite))//создали новый файл
{
Encoder.Save(jpegStreamOut);//сохранили новый файл
}
Foto.Close();//и закрыли исходный файл