Ich habe bemerkt (auf meiner Vista 64bit Maschine), dass ein Video, das in einem WPF MediaElement gezeigt wird, andere Farben als beim Abspielen in Windows Media Player hat. Innerhalb des MediaElement hat das Video ein leicht entsättigtes Aussehen mit geringerem Kontrast.WPF: Videofarben in MediaElement unterscheiden sich von Windows Media Player
Die Videos, die ich bisher ausprobiert habe, sind WMV-Videos, die von verschiedenen Leuten mit unterschiedlichen Tools erstellt wurden, so dass ich Probleme mit dem Videomaterial ausschließen würde. Alle Schieberegler "Videoeinstellungen" in Windows Media Player (Farbton, Sättigung, Helligkeit, Kontrast) haben ihre Standardwerte.
Aus diesem Grund vermutete ich zuerst ein Problem in meiner Software, das sich der animierten Opazität und dem Inhalt bedient, die über das Video gelegt werden.
Aber ich habe in der Lage, das Verhalten mit einem einfachen Testprogramm zu reproduzieren, wo die XAML wie folgt aussieht:
<Window x:Class="MediaElementTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<MediaElement Source="D:\Test\Video.wmv" />
</Window>
Bin ich etwas falsch? Gibt es eine Problemumgehung?
Vielen Dank! Der Blog-Post, auf den in der Antwort verwiesen wird, erwähnt das "WPFMediaKit", für das der Quellcode auf CodePlex verfügbar ist. Anstatt die Klassen dieser Bibliothek für die Videowiedergabe zu verwenden, habe ich den Shader-Effekt "DeeperColor" isoliert verwendet, d. H. Ich habe der Effect-Eigenschaft meines MediaElement eine Instanz der DeeperColor-Klasse zugewiesen, und die Farben waren in Ordnung! Die DeeperColor-Klasse befindet sich im Ordner "Effects" des WPFMediaKit-Projekts. Achten Sie darauf, die Build-Aktion von "DeeperColor.ps" auf "Ressource" zu setzen, wenn Sie sie direkt in Ihrem eigenen Projekt verwenden möchten. –