2015-04-29 2 views
0

У меня есть программа для захвата видео с камеры. Приложение находится в форме Windows, и я хочу использовать этот код для приложения WPF, но он не работает. Я использую ручку для захвата изображения с камеры uEye. В форме окон этоC# WPF uEye Камера захвата видео

displayHandle = PictureBox.Handle 

Но когда я использую ручку в WPF, то я не получаю видео с камеры. В 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.

Спасибо за помощь.

+0

'она не работает' не очень полезный способ описать проблему. Можете ли вы точно определить, как * он не работает? Исключения? Вещи не признаны? Выполняется ли, а затем терпит неудачу? Разве это не работает? – goobering

+0

Компонент изображения не отображает видео с камеры. Но у меня появилась идея. как это исправить. Если он будет работать, я напишу решение. – LOOK

ответ

0
HwndSource hwndSource = HwndSource.FromVisual(pbMainImage) as HwndSource; 
displayHandle = hwndSource.Handle; 

Не использовать после

InitializeComponent(); 

потому что HwndSource является нулевым, тогда камера не признают обрабатывать. Вы можете создать дескриптор дескриптора прежде, чем инициализировать компонент.

+0

Привет, я сталкиваюсь с тем же вопросом. Вам удалось привязать вид камеры к изображению Wpf? – Stefan

0

Прокладка 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) - Преобразование растровых изображений в BitmapSource

Смежные вопросы