Я использую код ниже в моем приложении WPF для рендеринга кадров.Проблема в том, что он выбрасывает ниже исключения часто, но не всегда.
"Первое случайное исключение типа 'System.NotSupportedException' произошло в PresentationCore.dll
Дополнительная информация: формат пикселей не поддерживается."
Здесь я пытаюсь создатьОбъект WPF BitmapImage для данного файла изображения (* .PNG)
public WPFBitmap(String imgFilePathInPC)
{
if (File.Exists(imgFilePathInPC))
{
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.CacheOption = BitmapCacheOption.None;
bitmap.CreateOptions = BitmapCreateOptions.None;
bitmap.UriSource = new Uri(imgFilePathInPC, UriKind.RelativeOrAbsolute);
bitmap.EndInit(); //--> Exception is thrown here
if (bitmap.Format != PixelFormats.Pbgra32)
{
FormatConvertedBitmap fmtCovertedBitmap = new FormatConvertedBitmap();
fmtCovertedBitmap.BeginInit();
fmtCovertedBitmap.Source = bitmap;
fmtCovertedBitmap.DestinationFormat = PixelFormats.Pbgra32;
fmtCovertedBitmap.EndInit();
wBitmap = new WriteableBitmap(fmtCovertedBitmap);
}
else
{
wBitmap = new WriteableBitmap(bitmap);
}
}
}
Я ожидал либо исключение, либо выполнение без каких-либо проблем.Но это исключение несколько раз, а не другое.Может ли это быть сделано любым другим способом без проблем?