none
Работа с avicap32.dll и PictureBox, Как словить кадр в PictureBox??? RRS feed

  • Вопрос

  • Делаю видеоконференцию на диплом, и тут такая глупая проблема...

    Короче говоря так - захватываю видео с веб-камеры через avicap32, и все отображается в PictureBox.

    public void Init(int windowHeight, int windowWidth, int handle)
            {
                string deviceIndex = Convert.ToString(this.index);
                deviceHandle = capCreateCaptureWindowA(ref deviceIndex, WS_VISIBLE | WS_CHILD, 0, 0, windowWidth, windowHeight, handle, 0);
    
                if (SendMessage(deviceHandle, WM_CAP_DRIVER_CONNECT, this.index, 0) > 0)
                {
                    SendMessage(deviceHandle, WM_CAP_SET_SCALE, -1, 0);
                    SendMessage(deviceHandle, WM_CAP_SET_PREVIEWRATE, 0x42, 0);
                    SendMessage(deviceHandle, WM_CAP_SET_PREVIEW, -1, 0);
    
                    SetWindowPos(deviceHandle, 1, 0, 0, windowWidth, windowHeight, 6);
                }
            }
    
    ......................................
    
    
    public void ShowWindow(global::System.Windows.Forms.Control windowsControl)
            {
                Init(windowsControl.Height, windowsControl.Width, windowsControl.Handle.ToInt32());                        
            }
    
    ...................................
    
    Device d = DeviceManager.GetDevice(cmbDevices.SelectedIndex);
                d.ShowWindow(this.picCapture);

    В общем это так вкратце основное для понятия как это работает.

    Но проблема в следующем. Я не могу достать изображаемое в PictureBox. То есть с камеры на него изображение идет, и все отображается, но почему-то параметр PictureBox.Image - пуст!!! Все время, даже если делаю принтскрин с камеры - в PictureBox есть изображение, Но то ли оно не Image, то ли я хз, но достать оттуда его что бы передать, или хотя бы сохранить я не могу... Помогите, что это может быть???
    • Перемещено Tagore Bandlamudi 1 октября 2010 г. 22:53 MSDN Forums consolidation (От:Visual C#)
    2 февраля 2010 г. 20:59

Ответы

  • Image - это изображение, которое должен показать pictureBox, а не изображение, которое он на самом деле показывает. Т.е. Image может быть показан в box, но показываемое не сохраняется в Image.
    На http://channel9.msdn.com/forums/TechOff/93476-Programatically-Using-A-Webcam-In-C/ есть полноценный семпл, посмотри кусок от строки Video Capture Code
    И еще там есть пара полезных линков по теме.
    • Предложено в качестве ответа PashaPash 2 февраля 2010 г. 21:08
    • Помечено в качестве ответа I.Vorontsov 15 февраля 2010 г. 8:17
    2 февраля 2010 г. 21:07

Все ответы