我正在使用Microsoft Windows SDK中的示例代码(CameraCapture,可在C:\ Program Files \ Windows Mobile 6 SDK \ Samples \ PocketPC \ CPP \ win32 \ CameraCapture中找到)使用Windows Mobile捕获图像。程序将图像保存到文件中,但我有兴趣将图像存储到内存中而不是保存到存储中。
有什么建议吗?
答案 0 :(得分:2)
我无法访问该特定示例,但我认为该项目正在使用CaptureCameraDialog类。
不幸的是,使用此类只会返回图像路径。您没有说明为什么需要将其保存在内存中而不是保存在磁盘上,但如果您打算进行一些基本处理,则可以在捕获后从磁盘加载它。
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);
}
这里要谨慎。我相信当保存到磁盘时,图像将采用压缩格式,但是当加载到内存中时,它们将被解压缩。在紧凑的框架中处理图像时很容易导致内存不足异常,因此我不建议一次在内存中保存大量图像,尤其是在使用高分辨率相机时。