Video tutorial on how to implement taking snapshot function for your camera viewer application in C#

This video demonstrates how you can take a snapshot from USB and IP camera in C#. You will see how you can download the Ozeki Camera SDK from the official website. Then how you can integrate the SDK in a Visual Studio solution as a reference. After this video you will know how you can display the image of the USB and IP camera. Moreover you will able to take a snapshot.


Download Video:
Download source code:

DISCLAIMER: Please note that the following features will only work if your IP camera supports the given functionality. So please check the user manual of your IP camera to make sure it supports the feature that you wish to implement in C#.



Welcome to the Ozeki Camera SDK video guide tutorial part four. In this chapter We will create a simple project to connect USB camera and IP camera and then we will take a snapshot with them.

This is the 4. video guide from our C# .NET camera tutorial series, in which we present how to use Ozeki Camera SDK to develop different kind of camera solutions.

This SDK is:

  • ONVIF compliant
  • Easy to use
  • Effective

Whether you're a beginner or an experienced C# developer you will certainly be able to implement the solutions presented in these tutorial videos, if you use this Camera SDK. This is gonna be a great video series. They contain short and practical code explanations.

This video will be exciting and fun. I hope you will enjoy it.

In this video the main steps are the following

  • First step - Download the SDK from the website
  • Second step - Create WPF solution in Visual Studio
  • Third step - Implementing the camera viewer application
  • Fourth step - Extend the application with taking snapshot function.
  • and finally the Fifth step - Check the result and we try out our application

And let's start now with the step one.

First of all, let's download the necessary SDK from the Click on the download then add a name, an email and a reason why you need this SDK. Click on the OK and you will see the downloading link. Click on it and install it. About the installation you can find more information in the Quick Start section.

After the installation let's create a new WPF solution project in the Visual Studio. Click on the new project and choose the WPF and give a name and select a folder, where you want to save. When the project is created, we add the System.Drawing.dll and the OzekiSDK to the references. We can find it, where the installer put it. And you can see the in references list.

Next step is to create the graphical user interface. We can do in the XAML file. We will need two button for USB camera Connection and Disconnection. And then we also need the same for the IP camera, but here we have to add three textboxes where we can add the connection data, like address of the camera, username and password as well. And then the related buttons. Now we add the necessary event handler for the Connection and Disconnection buttons. And finally we set the windows property.

After that we can deal with the control. Firstly we add the essential namespaces, which are come from the Ozeki Camera SDK. Then we add the necessary object to display the image of the IP and USB camera. In the constructor we instantiate the above objects. Then we create a help function, which create and set the videoviewer object and add it to the user interface. Now we establish the USB camera connection event handler. Here we create a webcamera object and connect it to the BitmapSourceprovider and then start the camera. Then we implement USB camera disconnection, where we stop the videoviewer and web camera. At IP camera for the connection we add the camera address, the username and the password, then we can start the camera. The Disconnection happens like at the USB camera.

Now we come back to extend the user interface for the taking snapshot. For this we need a button, which take the snapshot and an Image element, which show the captured image. To the button we add an eventhandler function.

At the control side we add a new field, which is the Snapshothandler. We instantiate it in the constuctor. We have to modify the camera connection and disconnection event handlers.

Now we can deal with the eventhandler function of the taking snapshot button. In order to we have at every snapshot a unique name, the name will contain the current date and time. The save folder will be the place of the program. We can get the actual image of the camera if we call the TakeSnapshot ToImage methods. After saving we display it on the user interface.

Check the result. First let's try the USB camera. You can see it works. Take the moment. And if I connect to an IP camera then there it works as well.

I hope you enjoyed the video.

If you liked this video and you want to learn more about further great solutions provided by Ozeki Camera SDK, then download the trial version from our website and follow our tutorial videos. For more information check out our website, and if you have any questions, send us an email to

In the next chapter Peter will build a PTZ control application, with that you can move the camera remotely on the network. It is gonna be exciting. See you in the next video. Bye.

More information