1

我正在拍照,并想根据它们的确切拍摄时间保存它们。

我还想在当前目录中创建一个名为 /pictures 的文件夹并将图片保存在该文件夹中。这是在 C# 和 WPF 中完成的。

这是我的代码:

Image newimage = new Image();
BitmapImage myBitmapImage = new BitmapImage(); 
myBitmapImage.BeginInit();

newimage.Source = Capture(true) // Take picture

myBitmapImage.UriSource = new Uri(@"c:\" + 
           string.Format("{0:yyyy-MM-dd_hh-mm-ss-tt}", DateTime.Now) + ".jpg"); 
// Gives error: Could not find file 'c:\2013-05-26_04-40-25-AM.jpg'

myBitmapImage.EndInit();
newimage.Source = myBitmapImage;

newstackPanel.Children.Add(newimage);

结果: 错误 找不到文件'c:\ 2013-05-26_04-44-59-AM.jpg'。

为什么它试图找到一个文件 VS 只是将文件保存在 c:\ 驱动器上?

4

1 回答 1

1

如果您只想将图像保存到磁盘,那么您应该使用BitmapEncoder

JpegBitmapEncoder encoder = new JpegBitmapEncoder();
var image = Capture(true); // Take picture
encoder.Frames.Add(BitmapFrame.Create(image));

// Save the file to disk
var filename = String.Format("...");
using (var stream = new FileStream(filename, FileMode.Create))
{
  encoder.Save(stream);
}

上面的示例创建了一个 JPEG 图像,但您可以使用任何您想要的编码器 - WFP 带有内置的PngTiffGifBmpWmp编码器。

于 2013-05-26T10:36:11.310 回答