Webcam benutzen in C#

Wie steuert man am besten und einfachsten eine Webcam unter Benutzung von C#.Net an? Recherchiert man im Internet, wird man, sofern man überhaupt fündig wird, leider oftmals mit sehr langen Artikeln und unübersichtlichen Snippets konfrontiert. Doch das muss gar nicht sein, denn mit Hilfe der AForge.NET Library geht das ganz einfach. Und wie das genau geht, möchte ich euch im Folgenden Artikel zeigen.
Was wird für dieses Tutorial benötigt?

Die AForge.Video.dll, sowie die AForge.Video.DirectShow.dll
Beide Dlls findet ihr auf der AForge Downloadseite im “(libs only)” zip-Archiv.
Eine schlichte WinForms-Anwendung, auf der ihr schon mal eine Picturebox anlegt.
Eine Webcam. Z.B. diese hier:

AngebotBestseller Nr. 1

Screenshot einer kompletten Webseite machen in C#

Screenshots machen ist eine Sache. Ein Klick auf die “Druck”-Taste (auf den meisten Tastaturen rechts neben F12), oder ein Aufruf der kürzlich von mir vorgestellten C# Methode, genügt. Was aber wenn man eine komplette Webseite festhalten will? Die meisten Seiten sind so lang, dass ein Scrollen, um den kompletten Inhalt zu sehen, unabdingbar ist.
Um auch in solchen Situationen einen vollständigen Screenshot erstellen zu können, hilft das nachfolgende Snippet.
 

private void WebsiteScreenshot(string url, string file)
{
//Anlegen eines Webbrowser Objekts
WebBrowser browser = new WebBrowser();

//Scrollbars deaktivieren, damit sie nicht auf dem
//Screenshot auftauchen
browser.ScrollBarsEnabled = false;

//(Java-)Scriptfehlermeldungen unterdrücken
browser.ScriptErrorsSuppressed = true;

//Die gewünschte Seite aufrufen
browser.Navigate(new Uri(url));

//Warten bis die […]

Screenshots erstellen in C#

Das nachfolgende Snippet kann dazu genutzt werden einen Screenshot in C#.Net zu machen.
Die damit erstellten Screenshots, gleichen denen, die mit der “Druck”-Taste auf der Tastatur erstellt werden. (Mal davon abgesehen, dass ihr bei der Nutzung des Snippets gleich ein nettes Bitmap Objekt habt, mit dem ihr weiter arbeiten könnt.)
Da das Snippet mehr als kurz ist, lass’ ich heute einfach mal den Code selbst sprechen.

private Bitmap Screenshot()
{
//Bitmap in größe der Bildschirmauflösung anlegen
Bitmap screen = new Bitmap(SystemInformation.VirtualScreen.Width,
SystemInformation.VirtualScreen.Height);

//Graphics Objekt der Bitmap anlegen
Graphics g = Graphics.FromImage(screen);

//Bildschirminhalt auf die Bitmap zeichnen
[…]

Mp3-Dateien normalisieren in C#

Wer kennt das nicht? Man erstellt sich eine Playlist mit seinen Lieblingsliedern, freut sich auf einen gemütlichen Nachmittag auf der Couch und dennoch will nicht so richtig Stimmung aufkommen.
Das erste Lied brüllt einen geradezu an und für das nächste sucht man hastig die Fernbedienung der Anlage, da es viel zu leise scheint. Überraschung, beim dritten Song erfährt man einen halben Herzinfarkt, weil man wieder volle Röhre angeschrien wird.
Das Zauberwort, um dem aus dem  Weg zu gehen, heißt Normalisierung. Ziel bei der Normalisierung ist es, eine Musikdatei im gesamten Höreindruck einer bestimmten Lautstärke anzugleichen.
Und wie man genau das programmatisch in C# umsetzt, möchte ich euch nachfolgend zeigen.
Was wird benötigt?

Die mp3gain.exe, welche ihr hier auf meiner Seite downloaden könnt.

private void mp3Normalisierung()
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Multiselect = true;
if (ofd.ShowDialog() == DialogResult.OK)
{
foreach(string fname in […]

Unterschiedliche Zufallszahlen generieren in C#

Nachdem ich euch schon gezeigt habe, wie man eine Liste an unterschiedlichen Zufallszahlen in PHP generiert, folgt nun ein Beispiel, wie man das ganze in C# umsetzen kann. Wer sich fragt, wofür man das braucht, liest am besten noch einmal die kurze Einleitung in diesem Artikel.

//Legt den Zahlenbereich fest, aus dem die
//Zufallszahlen gewählt werden sollen
int kleinsteZahl = 1;
int groessteZahl = 10;

//Legt fest wie viele Zufallszahlen generiert werden sollen
int zufallsZahlen = 5;

//Wir legen eine List mit den Zahlen an, aus denen
//die Zufallszahlen gewählt werden sollen
List auswahlZahlen = new List();
for (int i = kleinsteZahl; i <= groessteZahl; i++)
auswahlZahlen.Add(i);

//Wir legen eine List an, die unsere Ergebnisse
//beeinhalten soll
List ergebnisse = new List();

//Wir initialisieren den Zufallszahlengenerator
Random rand = new Random();

//Die Schleife ermittelt in jedem Durchlauf eine Zufallszahl
for (int i = 0; i < zufallsZahlen; i++)
{
//Es wird eine Zufahlszahl generiert
[…]