A WebCam Class in Visual Basic | CodeGuru

A WebCam Class in Visual Basic

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 […]

Written By
CodeGuru Staff
CodeGuru Staff
Jul 12, 2007
2 minute read
CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More

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:

Messagebox.show Mycam.Irunning

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:

mycam.Function Name

Functions

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:
  • myCam.initCam(Me.picOutput.Handle.ToInt32)
  • resetCam(): If you need to reset the camera, you can call this function. In general, you shouldn’t need this.
  • setFrameRate(ByVal iRate As Long): With setFrameRate, you are able to set the frame rate by passing a FPS value. This value then will be converted into how much time there should be between frames. The following sets the frame rate using a value of 25:
  • myCam.setFrameRate(25)
  • closeCam(): You should always close out the webcam class when you are done. This helps to clear things up.
  • copyFrame(ByVal src As PictureBox, ByVal rect As RectangleF): The copyFrame subroutine returns an image of the current frame. You need to pass to it the source picture box (where the camera image is) and then a rectangle specifying size dimensions:
  • Me.picStill.Image = myCam.copyFrame(Me.picOutput, _
                                        New RectangleF(0, 0, _
                                        Me.picOutput.Width, _
                                        Me.picOutput.Height))
    
  • FPS(): This FPS subroutine returns the current FPS value.
Advertisement

In Conclusion…

The code might not be the greatest; however, it works well. Hopefully, you will find it useful.

CodeGuru Logo

CodeGuru covers topics related to Microsoft-related software development, mobile development, database management, and web application programming. In addition to tutorials and how-tos that teach programmers how to code in Microsoft-related languages and frameworks like C# and .Net, we also publish articles on software development tools, the latest in developer news, and advice for project managers. Cloud services such as Microsoft Azure and database options including SQL Server and MSSQL are also frequently covered.

Property of TechnologyAdvice. © 2026 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.