[Wiki] Motion JPEG

Motion JPEG, kurz auch MJPEG genannt, ist ein Video-Codec, bei dem jeder Frame einzeln im JPEG-Format gespeichert wird.
Im Gegenteil zu MPEG komprimierten Videos, bei denen unter anderem auch die Unterschiede zwischen den einzelnen Einzelbildern gespeichert werden, wird bei MJPEG komprimierten Videos jedes Einzelbild separat im JPEG-Format gespeichert. Dies bringt Vor- sowie Nachteile mit sich.
Zum einen gibt es keine Artefaktbildung bei schnellen Szenen/bewegten Bildern, zum anderen macht sich dies aber auch in der Dateigröße bemerkbar, die bei MJPEG komprimiertern Videos um einiges höher ist, als bei anderen Video-Kodierungen.
(Bei SVHS-Qualität kommen ca. 25 MBit/s bei Nutzung von MJPEG zustande.)
MJPEG kodiertes Videomaterial findet man heutzutage meistens nur noch im IP-Cam Bereich.
(IP-Cam = Netzwerkkamera)
Für Netzwerkkameras ist die MJPEG Kodierung ideal, da sie relativ wenig Rechenleistung braucht und der von der Kamera erstellte Videostream in jedem gebräuchlichen Browser abgespielt werden kann.
Desweiteren können aber auch Geräte wie iPhone, iPad, Sonys Playstation 3 oder die Nintendo Wii mit Material im […]

Neue Kategorie – Wiki

Moin moin,
nur um eventueller Verwunderung vorzuwirken, möchte ich euch hiermit darauf aufmerksam machen, dass es hier demnächst eine neue Kategorie mit vielleicht etwas merkwürdigen Artikeln geben wird.
Die Kategorie wird den Namen “Wiki” tragen und nach und nach mit Artikeln befüllt, denen im Gegenteil zu allen anderen Artikeln, die ihr hier so lesen könnt, vollständig meine persönliche Note fehlen wird.
Die Artikel im Wiki sollen reine Know-how Artikel sein. Sie sind zwar alle von mir selbst geschrieben, aber jedoch frei von Kommentaren meinerseits.
Wenn ihr euch nun fragt, was das soll, kann ich das gut verstehen, doch auch dem möchte ich hiermit gleich Abhilfe schaffen. Ein paar Mal kam es schon vor, dass ich in meinen Artikeln und Snippets ein paar Techniken und Begriffe vorausgesetzt habe, die dem ein oder anderen nicht ganz geläufig waren. Um diese Artikel nun nicht bis ins Unendliche aufzublähen, werde ich zu bestimmten Themen Wiki-Artikel anlegen, in denen […]

Bilder mit JPEG beliebig komprimieren in C#

Heute zeige ich euch, wie man Bilder mit Hilfe des JPEG-Codecs beliebig komprimieren kann. Beliebig heißt in unserem Fall, dass ihr die Qualitätsstufe festlegen könnt, die das Bild trotz des Komprimierens beibehalten soll. Da die Funktion, die ich euch dafür geschrieben habe relativ kurz ist, denke ich, dass die Kommentare im Quelltext ausreichen sollten. Und nun viel Spaß damit!

private void JpegBildKomprimieren(Image quellBild, int qualitaet, string speicherPfad)
{
try
{
//Ein ImageCodecInfo-Objekt für den JPEG-Codec anlegen
ImageCodecInfo jpegCodec = null;

//Den Qualitätsarameter konfigurieren (Qualitätsfaktor in
//Prozent angeben)
EncoderParameter qualitaetsParameter = new EncoderParameter(
[…]

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