При рисовании изображения: Система. Время выполнения. InteropServices. ExternalException: универсальная ошибка произошла в GDI

Какого возраста? Многие из нас смотрели с ОСНОВНЫМ в какой-то момент, но к тому времени, я изучил понятие строкового представления команд вместе, переменных и цикличного выполнения с ЛОГОТИПОМ. Выяснение, как нарисовать круг с треугольником, который может только войти в прямую линию и поворот, было моим самым первым выполнением программирования.

Редактирование: Этот вопрос & его ответы заставляют меня чувствовать себя старым.

11
задан Michali 23 November 2009 в 13:47
поделиться

2 ответа

Ваша проблема похожа на то, что я думал, но не совсем. Когда вы загружаете изображение, вы загружаете его из MemoryStream. Вы должны держать поток открытым в течение всего времени существования образа, см. MSDN Image.FromStream .

Вы должны держать поток открытым в течение всего времени существования изображения.

Решение состоит в том, чтобы сделать копию вашего изображения в функции FromImage:

private void LoadImage(string filename, ref Image image)
{
  using (MemoryStream memoryStream = DecryptImageBinary(Settings.Default.ImagePath + filename, _cryptPassword))
  {
      using (tmpImage = Image.FromStream(memoryStream))
      { 
         image = new Bitmap(tmpImage);
      }
  }

}

Подобно проблеме удаления, о которой я упоминал, изображение будет казаться работают, а затем случайным образом терпят неудачу при сборке мусора базового потока.

15
ответ дан 3 December 2019 в 07:13
поделиться

Без дополнительного кода здесь недостаточно для правильной диагностики, однако стоит обратить внимание на одну вещь, на которую следует обратить внимание, это то, что вы могли разместить на изображении свой рисунок в какой-то момент раньше, и это только после мусора коллектор показывает, что ваш код не работает. Вы где-нибудь используете клонированные изображения? Я был удивлен, узнав, что если вы делаете прямой клон изображения, вы не клонируете базовое растровое изображение, на которое опирается изображение, а только структуру изображения,

2
ответ дан 3 December 2019 в 07:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: