C# WPF uEye Camera 采集视频
C# WPF uEye Camera capture video
我有从相机捕捉视频的程序。应用程序采用 windows 形式,我想将此代码用于 WPF 应用程序,但它不起作用。
我使用手柄从 uEye 相机捕捉图像。 windows 形式是
displayHandle = PictureBox.Handle
但是当我在 WPF 中使用 handle 时,我没有收到来自摄像头的视频。
在 WPF 中我使用这个句柄
HwndSource hwndSource = HwndSource.FromVisual(pbMainImage) as HwndSource;
displayHandle = hwndSource.Handle;
但还是不行
两个手柄我都用过
InitializeComponent();
private void onFrameEvent(object sender, EventArgs e){
uEye.Camera Camera = sender as uEye.Camera;
Int32 s32MemID;
Camera.Memory.GetActive(out s32MemID);
Camera.Display.Render(s32MemID, displayHandle, uEye.Defines.DisplayRenderMode.FitToWindow);
}
displayHandle 是来自组件 pictureImage 的句柄。
感谢您的帮助。
HwndSource hwndSource = HwndSource.FromVisual(pbMainImage) as HwndSource;
displayHandle = hwndSource.Handle;
以后不要使用
InitializeComponent();
因为 hwndSource 为 null,所以 Camera 无法识别句柄。您可以在使用句柄之前创建句柄,而不是在初始化组件之后。
将 IDS 摄像头传输到 WPF 组件。
private void onFrameEvent(object sender, EventArgs e)
{
uEye.Camera Camera = sender as uEye.Camera;
Int32 s32MemID;
Camera.Memory.GetActive(out s32MemID);
if (frameCamera != null)
frameCamera.Dispose();
frameCamera = null;
Camera.Memory.ToBitmap(s32MemID, out frameCamera);
Dispatcher.Invoke(new Action(() =>
{
pbMainImage.Source = loadBitmap(frameCamera);
}));
}
loadBitmap(frameCamera) - Convert Bitmap to BitmapSource
我有从相机捕捉视频的程序。应用程序采用 windows 形式,我想将此代码用于 WPF 应用程序,但它不起作用。 我使用手柄从 uEye 相机捕捉图像。 windows 形式是
displayHandle = PictureBox.Handle
但是当我在 WPF 中使用 handle 时,我没有收到来自摄像头的视频。 在 WPF 中我使用这个句柄
HwndSource hwndSource = HwndSource.FromVisual(pbMainImage) as HwndSource;
displayHandle = hwndSource.Handle;
但还是不行
两个手柄我都用过
InitializeComponent();
private void onFrameEvent(object sender, EventArgs e){
uEye.Camera Camera = sender as uEye.Camera;
Int32 s32MemID;
Camera.Memory.GetActive(out s32MemID);
Camera.Display.Render(s32MemID, displayHandle, uEye.Defines.DisplayRenderMode.FitToWindow);
}
displayHandle 是来自组件 pictureImage 的句柄。
感谢您的帮助。
HwndSource hwndSource = HwndSource.FromVisual(pbMainImage) as HwndSource;
displayHandle = hwndSource.Handle;
以后不要使用
InitializeComponent();
因为 hwndSource 为 null,所以 Camera 无法识别句柄。您可以在使用句柄之前创建句柄,而不是在初始化组件之后。
将 IDS 摄像头传输到 WPF 组件。
private void onFrameEvent(object sender, EventArgs e)
{
uEye.Camera Camera = sender as uEye.Camera;
Int32 s32MemID;
Camera.Memory.GetActive(out s32MemID);
if (frameCamera != null)
frameCamera.Dispose();
frameCamera = null;
Camera.Memory.ToBitmap(s32MemID, out frameCamera);
Dispatcher.Invoke(new Action(() =>
{
pbMainImage.Source = loadBitmap(frameCamera);
}));
}
loadBitmap(frameCamera) - Convert Bitmap to BitmapSource