В GDI + ошибка общего вида - PullRequest
1 голос
/ 15 ноября 2010

У меня есть каталог, в каталоге image background.jpg

В начале работы я загружаю это изображение в фоновом режиме

ImageBrush imgBrush = new ImageBrush();
imgBrush.ImageSource = new BitmapImage(new Uri("images/background.jpg", UriKind.Relative));
border.Background = imgBrush;

, после чего шаблон во время, мне нужно изменить это изображение,Я встряхиваю его с сервера, пытаюсь написать в images / background.jpg и получаю исключение

«В общем виде ошибки GDI +» - это перевод на русский.

getобраз для сервера и сохранения на компьютер

HttpWebRequest loHttp = (HttpWebRequest) WebRequest.Create (запрос);loHttp.Method = "GET";loHttp.ProtocolVersion = HttpVersion.Version11;HttpWebResponse loWebResponse = (HttpWebResponse) loHttp.GetResponse ();

StreamReader loResponseStream = new StreamReader(loWebResponse.GetResponseStream());
System.Drawing.Image webImage = System.Drawing.Image.FromStream(loWebResponse.GetResponseStream());
try
{
    webImage.Save("images/background.jpg");//this exception

    ImageBrush imgBrush = new ImageBrush();
    imgBrush.ImageSource = new BitmapImage(new Uri("images/background.jpg", UriKind.Relative));
    parent.GetSetBorder.Background = imgBrush;
}
catch {  }

Что мне делать?

Ответы [ 2 ]

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

Да, этот код будет работать только один раз.После того, как вы вызвали Save (), у вас есть блокировка файла.Сбережения снова будут бомбить.Вы должны вызвать Dispose () после вызова Save (), чтобы растровое изображение было правильно расположено, а блокировка файла снята.

Не используется с использованием оператора или вызов Dispose () для одноразового классаОбъект - это то, с чем вам часто приходится сталкиваться в.Но редко на растровых изображениях.

0 голосов
/ 15 ноября 2010

Путь, по которому вы сохраняете (images / background.jpg), указывает на ваш локальный компьютер, и эта ошибка может возникнуть, если путь не существует.

Попробуйте написать webImage.Save("c:\\background.jpg"); или любой другой путь.известно, что существует, чтобы увидеть, сохраняется ли ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...