使用StorageFile创build图片时更改图片中的创builddate

即时通讯使用一个存储文件创build一个图片在Windows Phone 8.1保存图片相册在照片画廊,迄今为止这工作正常。 我使用一个图片stream,我保存到这个新的图片,下面你会看到代码片段。 我的问题是,新创build的图片有创builddate的stream(源文件),我怎么能改变新的文件创builddateDateTime.Now ?!

这里是我如何保存图片:

var pictureURL = "ms-appx:///Assets/folder/Picture.jpg"; StorageFile storageFile = await KnownFolders.SavedPictures.CreateFileAsync("Picture.jpg", CreationCollisionOption.GenerateUniqueName); StorageFile pictureFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri(pictureURL)); using (var imageFile = await pictureFile.OpenStreamForReadAsync()) { using (var imageDestination = await storageFile.OpenStreamForWriteAsync()) { await imageFile.CopyToAsync(imageDestination); } } 

上面的代码片段会生成一个名为“storageFile”的新图片,然后从应用程序Uri中获取“pictureFile”文件。 然后通过使用打开的源图片作为Stream读取,在此使用另一个using语句打开画廊中新build的图片文件进行写入,在其中打开的文件数据被复制到目标文件数据并保存。

这工作和文件是在画廊,但创作时间是从源图片。 我如何在运行时将新的创build时间添加到它?

这是解决方案:

我已经找到了Windows.torage.FileProperties中的ImeProperties和下面的编辑代码,你可以保存图片,并在它之后更改EXIF数据,如日期采取和相机制造商和其他细节。

  var pictureURL = "ms-appx:///Assets/folder/Picture.jpg"; StorageFile storageFile = await KnownFolders.SavedPictures.CreateFileAsync("Picture.jpg", CreationCollisionOption.GenerateUniqueName); StorageFile pictureFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri(pictureURL)); using (var imageFile = await pictureFile.OpenStreamForReadAsync()) { using (var imageDestination = await storageFile.OpenStreamForWriteAsync()) { await imageFile.CopyToAsync(imageDestination); } } ImageProperties imageProperties = await storageFile.Properties.GetImagePropertiesAsync(); imageProperties.DateTaken = DateTime.Now; imageProperties.CameraManufacturer = ""; imageProperties.CameraModel = ""; await imageProperties.SavePropertiesAsync(); 

这将覆盖现有的数据,这就是我正在寻找的。