Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Работа с Web-камерой. Добавлено: 06.03.07 04:22  

Автор вопроса:  Dark
Проблема такая:
Есть USB Web-камера, как можно получать изображение с камеры и сохранять его. Видео сохранять не надо, только одиночные ихображения.
Я так понимаю нужен DirectX SDK?
Можно ли это написать на C#/VB.NET не использую WinAPi?

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #1
Добавлено: 06.03.07 16:47
DirectX SDK конечно нужен. Но когда я просматривал возможности управляемого кода, я не нашел в классе отвечающем за работу с видео(Microsoft.DirectX.AudioVideoPlayback) возможности какого бы то ни было редактирования изображения.
Плеер (камеру) написать - очень легко.
А это все значит, что прийдется идти другим путем, обрабатывая поток вручную. Но учитывая, что реализация там скрыта, и специфику управляемого кода, я не знаю какие проблемы могут возникнуть.
Вот что может наш класс.

Dispose  'Immediately releases the unmanaged resources used by an object.
Finalize  'Called during garbage collection. If implemented, allows an object to free resources before it is destroyed by the garbage collector.
FromFile  'Creates a Video object from a file.
FromUrl  'Creates a Video object from a Uri object.
HideCursor  'Hides the cursor while playing video.
Open  'Loads a new file into the Video object.
Pause  'Pauses playback.
Play  'Starts playback.
raise_Disposing  'Raises the Video.Disposing event when called from within a derived class.
raise_Ending  'Raises the Video.Ending event when called from within a derived class.
raise_Pausing  'Raises the Video.Pausing event when called from within a derived class.
raise_Starting  'Raises the Video.Starting event when called from within a derived class.
raise_Stopping  'Raises the Video.Stopping event when called from within a derived class.
raise_TextureReadyToRender  'Raises the Video.TextureReadyToRender event when called from within a derived class.
RenderToTexture  'Enables the Video to trigger the TextureReadyToRender event to generate Texture objects for rendering video in Microsoft Direct3D.
SeekCurrentPosition  'Seeks to a specific playback postion.
SeekStopPosition  'Sets a new stop postion in playback.
ShowCursor  'Shows the cursor while playing video.
Stop  'Stops playback.
StopWhenReady  Stops playback when the Video object is ready.
Video  'Initializes a new instance of the object.

Но впрочем если тебе нужно делать только скрины, это совсем не сложно. И реализовать это можно по разному.

Тка что, то что ты хочешь сделать можно.

Ответить

Номер ответа: 2
Автор ответа:
 Dark



Вопросов: 4
Ответов: 41
 Профиль | | #2 Добавлено: 07.03.07 15:29
Мне нужны только скрины. Например нажимаешь на кнопку - скрин сохраняется на винт.

Ответить

Номер ответа: 3
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #3
Добавлено: 07.03.07 17:55
Тогда проблем нет. И в принципе, написать это, можно очень быстро.

Ответить

Номер ответа: 4
Автор ответа:
 Dark



Вопросов: 4
Ответов: 41
 Профиль | | #4 Добавлено: 08.03.07 13:18
Можешь дать пример кода который получает с камеры картинку? Я так понимаю в объект Image?

Ответить

Номер ответа: 5
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #5
Добавлено: 09.03.07 11:18
Я делаю так.

if (e.KeyCode == Keys.S)
            {

                if (!Windowed)
                    return;
                Microsoft.DirectX.Direct3D.Surface Buff  ;

                Buff = device.CreateOffscreenPlainSurface(presentParams.BackBufferWidth, presentParams.BackBufferHeight, Format.A8R8G8B8, Pool.SystemMemory);
                device.GetFrontBufferData(0, Buff);
                SurfaceLoader.Save(@"scr.bmp", ImageFileFormat.Bmp, Buff);
                

            }

Ответить

Номер ответа: 6
Автор ответа:
 Dark



Вопросов: 4
Ответов: 41
 Профиль | | #6 Добавлено: 09.03.07 15:52
Thanks.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам