Создание BitmapImage из MemoryStream вызывает сбой - используется для работы - PullRequest
1 голос
/ 16 ноября 2010

Я действительно озадачен этим.Я создаю BitmapImage с необработанным байтовым массивом, например, так:

void SetBitmapData(byte[] imageData)
{
    var bitmapImage = new BitmapImage();
    bitmapImage.BeginInit();
    bitmapImage.StreamSource = new MemoryStream(imageData);
    bitmapImage.EndInit();

    this.Bitmap = bitmapImage;
}

Еще час назад он работал - и работал в течение нескольких месяцев.Теперь, на bitmapImage.EndInit(), это дает мне NotSupportedException - «Не было найдено ни одного компонента обработки изображений, подходящего для выполнения этой операции».

Я действительно запутался, потому что с утра это работало.Ничего не изменилось.На самом деле, чтобы убедиться, что мои изменения (которые были в совершенно не связанных частях приложения) не вызывали сбой, я проверил код, только что полученный из SVN, используя головку.Голова не разбилась вчера, когда я это совершил.Эта свежая копия также демонстрирует то же поведение.

Вылетает из VS и при запуске самого исполняемого файла.

Я использую Visual Studio 2010 со следующими плагинами: ReSharper, StyleCop для ReSharper,VisualSVN.

Непосредственно перед тем, как это началось, Visual Studio сделала что-то странное - курсор клавиатуры исчез, но я все еще мог печатать.Я мог бы выбрать несколько символов с помощью мыши и клавиатуры, и, если я нажму «Удалить», они будут удалены.Я перезапустил Visual Studio, и проблема с невидимым курсором исчезла.

Я попытался перезагрузить компьютер, но это не помогло.

1 Ответ

2 голосов
/ 17 ноября 2010

"Не найден ни один компонент формирования изображения, подходящий для выполнения этой операции." сбрасывается при сбое вызова IWICBitmapEncoder_Initialize_Proxy Поскольку ваш VS2010 (который также использует этот материал) также ведет себя забавно, я предполагаю, что некоторые из ваших dll скрыты. Лучше всего спросить, как восстановить Windowscodecs.dll и Wincodec.lib на SuperUser

...