将捕获的图像保存到本地文件夹

时间:2013-05-26 06:43:00

标签: c# wpf save image

我正在拍照,并希望根据拍摄时间保存它们。

我还想在当前目录中创建一个名为/ pictures的文件夹,并将图片保存在该文件夹中。这是在C#和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:\驱动器上?

1 个答案:

答案 0 :(得分: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编码器内置。