Seiten
Zuletzt im Ohr
Zuletzt im Sinn
Archiv
- August 2010 (6)
- Juni 2010 (11)
- Mai 2010 (4)
- März 2010 (6)
- Februar 2010 (3)
- Dezember 2009 (2)
- November 2009 (3)
- Oktober 2009 (17)
- September 2009 (7)
- August 2009 (7)
- Juli 2009 (3)
- Juni 2009 (2)
- Mai 2009 (4)
- April 2009 (1)
- März 2009 (3)
- Februar 2009 (11)
- Januar 2009 (14)
- Dezember 2008 (6)
- November 2008 (9)
- Oktober 2008 (6)
- September 2008 (3)
Tagcloud
Partner/Links
- C# Tipps und Tricks - C# Tipps und Tricks
- gb-pix.de - Gästebuchbilder, Jappy, MySpace…
- Kostenlose Browsergames - Kostenlose Browsergames
- MySpace Downloader - MySpace Loader – der kostenlose MySpace.com Downloader
- Servervoice Blog - Servervoice Blog
- Wordpress Theme
- Youtube Mediaplayer - Webmusix – der kostenlose Youtube Mediaplayer
Network
C# – Webcams benutzen
Heute möchte ich euch zeigen, wie man mit minimalem Aufwand und wenigen Zeilen C#-Code Webcams ansteuern/nutzen kann.
Es gibt zwar schon einiges an Material zu diesem Thema, jedoch sind die meisten der Beiträge ziemlich lang und kompliziert oder verwenden WIA Scripting welches in der häufig vorgestellten Form nur auf Windows XP richtig rund läuft.
Meine Lösung basiert auf dem AForge.NET Framework. Benötigt werden die beiden folgenden Dlls.
- AForge.Video.dll
- AForge.Video.DirectShow.dll
Diese findet ihr im jeweils aktuellsten “libs only” .zip-Archiv auf der AForge Downloadseite.
Designer
Wenn ihr euch die Dlls besorgt habt, kann es auch schon losgehen. Zuerst erstellt ihr ein neues WinForms-Projekt im Visual Studio und fügt bei den Verweisen die beiden AForge Dlls hinzu. (Rechtsklick auf “Verweise” >> “Verweis hinzufügen” und dann im “Durchsuchen”-Tab die Dlls auswählen.)
Nun fügen wir unserem Form noch eine PictureBox hinzu und konfigurieren diese im “Eigenschaften”-Fenster des VS wie folgt. (Eigenschaft >> Wert)
- (Name) >> pictureBoxVideo
- BackgroundImageLayout >> Zoom
- Dock >> Fill
Nun legen wir noch zwei Methoden für das FormClosed- und das Load-Event unseres Forms an.
Das war’s auch schon, was wir im Designer zu verrichten hatten. Nun fehlt nur noch der Code. Das dieser ziemlich kurz ist, bauen ich ihn hier im Blog nicht Schritt für Schritt auf, sondern poste ihn, gut kommentiert, im ganzen.
Code
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
//Einbinden der AForge Librarys
using AForge.Video;
using AForge.Video.DirectShow;
namespace aforgeWebcam
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Unser Webcam Objekt
VideoCaptureDevice videoSource;
private void Form1_Load(object sender, EventArgs e)
{
//Auflistung aller Webcam/Videogeräte
FilterInfoCollection videosources = new FilterInfoCollection(FilterCategory.VideoInputDevice);
//Überprüfen, ob mindestens eine Webcam gefunden wurde
if (videosources != null)
{
//Die erste Webcam an unser Webcam Objekt binden
videoSource = new VideoCaptureDevice(videosources[0].MonikerString);
try
{
//Überprüfen ob die Webcam Technische-Eigenschaften mitliefert
if (videoSource.VideoCapabilities.Length > 0)
{
string highestSolution = "0;0";
//Das Profil mit der höchsten Auflösung suchen
for (int i = 0; i < videoSource.VideoCapabilities.Length; i++)
{
if (videoSource.VideoCapabilities[i].FrameSize.Width > Convert.ToInt32(highestSolution.Split(';')[0]))
highestSolution = videoSource.VideoCapabilities[i].FrameSize.Width.ToString() + ";" + i.ToString();
}
//Dem Webcam Objekt die höchstmögliche Auflösung übergeben
videoSource.DesiredFrameSize = videoSource.VideoCapabilities[Convert.ToInt32(highestSolution.Split(';')[1])].FrameSize;
}
}
catch { }
//Dem Webcam Objekt den NewFrame Eventhandler zuweisen.
//Dieser schlägt bei jedem eingehenden Bild der Webcam an
videoSource.NewFrame += new AForge.Video.NewFrameEventHandler(videoSource_NewFrame);
//Die Webcam aktivieren
videoSource.Start();
}
}
void videoSource_NewFrame(object sender, AForge.Video.NewFrameEventArgs eventArgs)
{
//Jedes ankommende Bild von der Webcam der Picturebox zuweisen
pictureBoxVideo.BackgroundImage = (Bitmap)eventArgs.Frame.Clone();
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
//Webcam beim Schließen des Programms wieder freigeben
if (videoSource != null && videoSource.IsRunning)
{
videoSource.SignalToStop();
videoSource = null;
}
}
}
}
Das war’s auch schon. Abschließend könnt ihr das Demo-Projekt auch hier downloaden. Solltet ihr noch Fragen, Kritik oder Verbesserungsvorschläge haben, dann schreibt mir einfach einen Kommentar.
Viele Grüße,
Raffi
Ähnliche Artikel:
- C# – Automatischer Login mit dem Webbrowser-Control
- Automatisch eine Klasse für den Zugriff auf eine XML-Datei erstellen
- C# ContextMenuStrip öffnen, ohne es in der Taskbar anzuzeigen
- MySpace Musik herunterladen – Part2: C# Implementation
- C# – Login auf Webseiten per HttpWebRequest und HttpWebResponse
Hallo!

Kategorien
- Der tägliche Senf… (99)
- Informatik (96)
- C# & .net Framework (18)
- Cheat Sheets (4)
- HTML, PHP, etc. (6)
- Neuigkeiten (33)
- Software-Projekte (40)
- Tipps & Tricks (39)
- Web-Projekte (1)
- Musik (11)
- Downloads (4)
- Hörbar – Raffis Musiktipp (4)
- Videoclips (9)
- Schule (5)
Kalendar
| M | D | M | D | F | S | S |
|---|---|---|---|---|---|---|
| « Mai | Aug » | |||||
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | ||||
Counter
| Besucherstatistik | |
| Besucher gesamt: | 155.522 |
| Besucher heute: | 354 |
| Besucher gestern: | 392 |
| Max. Besucher pro Tag: | 677 |
| gerade online: | 5 |
| max. online: | 89 |
| Seitenaufrufe gesamt: | 431.582 |
| Seitenaufrufe diese Seite: | 564 |
| Counterstart: | 13.10.2008 |
Meta
Am meisten kommentiert
Neue Artikel
- Soundcloud Downloader
- Große Dateien schnellstmöglich verschicken
- Facebook- & Twitterbutton in Wordpress
- 5x (Audio-)visuelles für die Mittagspause
- C# – Facebook like MessageBox
- Update: Webmusix 1.4.2
- C# – Webcams benutzen
- Mp3’s schneiden, kürzen, ein- und ausblenden
- Netzfundstück: Amsterdam Acoustics
- Pixlr – Online Bilder bearbeiten
Neue Kommentare
- Frankonia: Sehr nützliches Tool, danke!
- Raffi: Dann werd ich mir mal das 4.0er Framework draufschmeißen und den Debugger anhauen
- Pari: Moin:) Unter WinXP SP3 mit installiertem .NET 2.0, 3.0 und 3.5 funzt es und unter Win7 x64 ebenso. Nur auf dem...
- Raffi: Hallo Pari, der Fehler ist mir noch nicht über den Weg gelaufen. Hast du eine Möglichkeit das Programm auf...
- Pari: ich krieg beim Versuch die Installation folgende Meldung: .Net Framework Initialization Error: Unable to find a...
net-blog.net © 2008-2010




3 Benutzer kommentierten "C# – Webcams benutzen"
17 August 2010 um 02:08:31
hab vielen dank für diese tolle, sehr übersichtliche und aufs absolut wesentlich reduzierte anleitung zur benutzung der aforge geschichten! weiter so!
ps: irgendwie sieht der formatierte quellcode ziemlich furchtbar aus (chrome & firefox), aber das zum download bereit gestellte vs-projekt macht alles wieder wett. irgendwie mal das layout/stylesheets der webseite überprüfen.
18 August 2010 um 17:48:10
Erstmal Danke für den Kommentar. Das mit dem Syntax Highlighting ist mir auch ein Dorn im Auge. Am Anfang lief das Plugin perfekt, mittlerweile “verhunzt” es mir jeglichen Quelltext, leider konnte ich den Verursacher nicht finden. Ein anders Plugin schuf auch keine Abhilfe.
Mal sehen – ich denke, ich werde bei Zeiten in den sauren Apfel beißen und mir wohl ein eigenes Plugin zum anzeigen des Codes schreiben.
Oder hast du einen Tipp für mich?
Viele Grüße,
Raffi
edit://
Ein Wechsel des Plugins hat den erwünschten Effekt gebracht.
10 September 2010 um 18:29:43
preteens…
Wow! So many curves in one place, and not just any curves! I’ m talking about real amateur BBW pile of pleasure, all nude and ready to be jerked on! Do you like this huge BBW belly? I just love them so big and round, it’ s perfect to cum on it, and to …