在 Windows Phone 8 上,我希望以本机代码拍摄照片,但在最后阶段我被阻止无法从 IOutputStream 中提取信息。
在 C# 中,我们编写代码:
MemoryStream image = new MemoryStream();
MemoryStream imagePreview = new MemoryStream();
cameraCaptureSequence.Frames[0].CaptureStream = image.AsOutputStream();
cameraCaptureSequence.Frames[0].ThumbnailStream = imagePreview.AsOutputStream();
await cameraCaptureSequence.StartCaptureAsync();
从现在开始,图像流具有捕获图像的信息,我可以渲染它。
在 C++ / Cx 中,我需要做同样的事情,但更多的是要捕获捕获图像的字节*,这里是我的代码:
Windows::Phone::Media::Capture::CameraCaptureSequence^ cameraCaptureSequence;
IBuffer^ image;
return concurrency::create_async([this]()
{
cameraCaptureSequence->Frames->GetAt(0)->CaptureStream = reinterpret_cast<IOutputStream^>(image);
create_task( m_camera->PrepareCaptureSequenceAsync(cameraCaptureSequence) ).wait();
create_task( cameraCaptureSequence->StartCaptureAsync() ).then([this]()
{
}
}
从最基本的事情开始,我希望了解如何将捕获的图像流的结果“保存”到 IBuffer^ 中,更好地获取内部字节 * 缓冲区。
谢谢