Virtual Developer Workshop: Containerized Development with Docker
The WebCam class will make it easy for your applications to view a webcamera. Additionally, it will make it possible to configure a number of settings on the Webcam, such as setting the FPS value (frames per second).
This class was written quickly to dig into the .NET environment. As such, the coding may not be the best, but it works. Included with the code is a project that uses the class, so that you can see how simple it is.
If you look at the class, you will find that the first three variables that can be changed are as follows:
Private CamFrameRate As Integer = 15 Private OutputHeight As Integer = 240 Private OutputWidth As Integer = 360
CamFrameRate is set to 15 in this code. This is just the initial frame rate that is used. The CamFrameRate sets how much of a gap there is between frames. In this case, 15ms, or about 65 FPS, is the setting. You can change the FPS through a subroutine.
OutputHeight and OutputWidth are fairly self explanatory. You can set these to the dimensions of output.
Before doing much with a WebCam, you should probably make sure it is running. You can use the iRunning variable to check. This variable is defined in the code as follows:
Public iRunning As Boolean
You can call IRunningat any time; it will return true if the camera is running or false if it is not. For example, the following line of code displays a message box letting you know if the camera is running:
How to Use the Class
To use the class, you first need to create an iCam object:
Private myCam As iCam Set myCam = New iCam
From here, you can call a range of functions using standard syntax:
The following provides a bit of information on the key functions:
- initCam(ByVal parentH As Integer): This is where it all starts. You must call this to set up the camera. parentH is where you want to prievew, so if you have a pictureBox on your form, named picoutput, you would call initCam as follows:
Me.picStill.Image = myCam.copyFrame(Me.picOutput, _ New RectangleF(0, 0, _ Me.picOutput.Width, _ Me.picOutput.Height))
The code might not be the greatest; however, it works well. Hopefully, you will find it useful.