使用CameraCapture捕获图像

时间:2011-07-20 07:25:30

标签: image windows-mobile camera

我正在使用Microsoft Windows SDK中的示例代码(CameraCapture,可在C:\ Program Files \ Windows Mobile 6 SDK \ Samples \ PocketPC \ CPP \ win32 \ CameraCapture中找到)使用Windows Mobile捕获图像。程序将图像保存到文件中,但我有兴趣将图像存储到内存中而不是保存到存储中。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

我无法访问该特定示例,但我认为该项目正在使用CaptureCameraDialog类。

http://msdn.microsoft.com/en-us/library/microsoft.windowsmobile.forms.cameracapturedialog_members.aspx

不幸的是,使用此类只会返回图像路径。您没有说明为什么需要将其保存在内存中而不是保存在磁盘上,但如果您打算进行一些基本处理,则可以在捕获后从磁盘加载它。

using (CameraCaptureDialog cameraCapture = new CameraCaptureDialog())
{
    cameraCapture.ShowDialog();

    //get the name of the last image taken
    string fileName = cameraCapture.FileName;

    //Load the image from disk into our image object
    Image image = new Bitmap(fileName);
}

这里要谨慎。我相信当保存到磁盘时,图像将采用压缩格式,但是当加载到内存中时,它们将被解压缩。在紧凑的框架中处理图像时很容易导致内存不足异常,因此我不建议一次在内存中保存大量图像,尤其是在使用高分辨率相机时。