Videos in C# erstellen

videos in c# erstellenHeute gibt es mal wieder ein bisschen C# Code. Es geht darum, wie man Videodatein in C# aus einzelnen Bildern bzw. Bitmaps erstellen kann. Mittels der AForge Library, welche ich schon in dem C# Webcam Tutorial verwendet habe, geht dies relativ einfach.
Vorbereitungen
Für das nachfolgende Tutorial braucht ihr die AForge.Video.FFMPEG.dll Library und die dazugehörigen FFMPEG Librarys. Alles beides findet ihr unter folgendem Link. Wählt auf der nachfolgenden Downloadseite die .zip-Datei aus, welche “(libs only)” im Dateinamen hat.

AForge Libs Download

Im nächsten Schritt öffnet ihr euer Visual Studio oder eine Alternative Entwcklungsumgebung mit der ihr eurer Programm schreiben wollt. (Für das nachfolgende Tutorial beziehe ich mich auf as Visual Studio.)
Projekt erstellen
Legt nun ein neues Projekt, ich habe mich für ein WinForms-Projekt entschieden, und wartet bis das Visual Studio das Projekt […]

Alias für using-Direktiven und Namespaces in C#

Jeder, der schon das ein oder andere Programm in C# geschrieben hat, wird das Problem vermutlich kennen. Man bindet die ein und die andere Library ein. Teilweise auch Librarys, die ähnliche Zwecke erfüllen. Das kann gut gehen, muss es aber nicht.
Schnell bekommt man eine Fehlermeldung nach dem Schema: “XYZ ist ein mehrdeutiger Verweis und kann von LibraryA.XYZ oder LibraryB.XYZ sein.”
Doch was nun? Am Beispiel der AForge Library möchte ich das Problem einmal exemplarisch lösen. Als Beispiel nehmen wir an, wir hätten bisher folgende beide Referenzen gesetzt und die using-Direktiven geschrieben.
using System.Drawing;
using AForge.Imaging;
Verwenden wir nun die Klasse “Image” in unserem Programm, so erhalten wir folgende Fehlermeldung, die daraus resultiert, dass es sowohl im Namespace System.Drawing als auch in AForge.Drawing eine Klasse namens “Image” gibt.
visual_studio_namespace_alias
Nun könnte man abwägen, auf die Elemente wessen Namespace wir öfter […]

Javascript escape() in C# – ein C# äquivalent zur escape()-Funktion

csharp_vs_javascriptDas .Net-Framework bietet eine große Anzahl an Möglichkeiten, um HTML-Code und Urls zu encodieren. Da wären zum Beispiel Uri.EscapeDataString(), Uri.EscapeUriString(), System.Web.HttpUtility.UrlEncode(), System.Web.HttpUtility.UrlPathEncode(), System.Web.HttpUtility.HtmlEncode() oder System.Web.HttpUtility.HtmlAttributeEncode().
Wenn man jedoch eine gleichwertige Funktion zu Javascript‘s escape() sucht, so wird man von all diesen Funktionen enttäuscht. Keine dieser standardmäßig vom .Net-Framework mitgelieferten Funktionen ist äquivalent zur Javascript escape()-Funktion.
Zur Verdeutlichung habe ich mal folgendes Beispiel gemacht:

// Original Ausgangsstring
// Raffi’s ärgerlicher C# Teststring/Testcode.

// JS Original (erzeugt durch escape() )
// Raffi%27s%20%E4rgerlicher%20C%23%20Teststring/Testcode.

// Uri.EscapeDataString():
// Raffi’s%20%C3%A4rgerlicher%20C%23%20Teststring%2FTestcode.

// Uri.EscapeUriString():
// Raffi’s%20%C3%A4rgerlicher%20C#%20Teststring/Testcode.

// System.Web.HttpUtility.UrlEncode():
// Raffi%27s+%c3%a4rgerlicher+C%23+Teststring%2fTestcode.

// System.Web.HttpUtility.UrlPathEncode():
// Raffi’s%20%c3%a4rgerlicher%20C#%20Teststring/Testcode.

// System.Web.HttpUtility.HtmlEncode():
// Raffi's ärgerlicher C# Teststring/Testcode.

// System.Web.HttpUtility.HtmlAttributeEncode():
// Raffi's ärgerlicher C# Teststring/Testcode.

Doch ich würde nicht darüber bloggen, wenn ich nicht auch eine Lösung parat hätte. Und diese ist gar nicht mal so kompliziert.
Schritt 1:
Fügt eurem Projekt einen Verweis auf Microsoft.JScript hinzu.
microsoft jscript verweis hinzufügen

Einfache XML-Serialisierung in C#

C# XML SerialisierungHeute möchte ich euch zeigen, wie man eine XML-Serialisierung in C# durchführen kann. Serialisierung selbst, bedeutet, dass man ein Objekt in eine andere, transportable Form umwandelt. Mittels XML-Serialisierung ist es uns zum Beispiel nötig, ein Objekt einer Klasse in Form einer XML-Datei abzuspeichern und auch wieder herzustellen.
Das kann Sinn machen, wenn man ein Objekt in seinem Zustand nach dem Schließen und erneuten Öffnen einer Anwendung wiederherstellen oder wenn man ein Objekt beispielsweise per HTTP übertragen möchte.
Für unser Beispiel habe ich folgende Klasse Blog erstellt:

public class Blog
{
public string User { get; set; }
public string Pass { get; set; }
public string Subdomain { get; set; }
public string BaseUrl { get; set; […]

Darstellungsfehler von Koreanischen und anderen ausländischen Zeichensätzen in C# / Visual Studio beheben

Ich weiß, der Titel des Posts ist grausam, aber ich wusste das Problem nicht kürzer zu beschreiben. Aber kommen wir nun zur Sache. Im Rahmen der Entwicklung meines Cloud Downloaders stieß ich unter anderem auf folgendes Problem. Koreanische Zeichen wurden nur als blanke Kästchen dargestellt, obwohl Sie im Quelltext korrekt angezeigt wurden. Wer sich jetzt fragt, wo man die koreanischen Zeichen auf einer deutschen Tastatur herbekommt, sollte einfach mal bei Google Translate vorbeischauen. (Der nachfolgende Screenshot veranschaulicht das Problem noch mal. Zum vergrößern bitte das Bild anklicken.)
Koreanische Zeichen falsche Darstellung
Im Netz habe ich nur sehr wenige Lösungen gefunden. Und fast alle waren meiner Meinung nach eher suboptimal. Meistens wird nämlich folgender Weg vorgeschlagen:
Es wird empfohlen die Methode SetCompatibleTextRenderingDefault() mit dem Parameter true aufzurufen. Hierdurch werden Texte mit der auf  GDI+ basierenden Graphics-Methode gerendert, welche […]