В GDI произошла общая ошибка interopservices во время выполнения системы

Обновлено: 21.11.2024

Приложения Windows используют API Windows для взаимодействия с GDI для таких задач, как рисование линий и кривых, отрисовка шрифтов и работа с палитрами. Подсистема USER Windows использует GDI для отображения таких элементов пользовательского интерфейса, как оконные рамы и меню.

Как понять, что в GDI+ произошла общая ошибка?

Например, следующий фрагмент кода вызовет эту ошибку: Image img = Image. ИзФайла (ИмяФайла); изображение Сохранить (имя файла); // выдает исключение! Приставка. WriteLine (например, сообщение); Перечисленный выше метод пытается открыть файл изображения, обработать изображение (код не показан) и затем сохранить изображение под тем же именем файла.

Почему я получаю ошибку GDI при сохранении изображения?

Причина может заключаться в том, что изображение загружается лениво и процесс загрузки еще не завершен, когда вы пытаетесь его сохранить. Следуя тому, что сказано в этом сообщении в блоге (при условии, что вы немец, судя по картинке, которую вы указали в своем вопросе), вы найдете возможное решение.

Почему любовь выдает общую ошибку в методе bitmap.save?

Несмотря на то, что совершенно неясно, зачем вообще создавать новое растровое изображение, сохранения thumbBMP уже должно быть достаточно. Во всяком случае, подарите остальным своим одноразовым предметам то же самое с любовью. В моем случае файл растрового изображения уже существовал на системном диске, поэтому мое приложение выдавало ошибку «Общая ошибка в GDI+».

Что делать, если GDI+ выдает исключение?

Исключения GDI+ слишком жалкие, чтобы дать хорошую диагностику, поэтому возникает серьезная головная боль. Помимо тысяч сообщений в Google, в которых упоминается эта ошибка. Всегда отдавайте предпочтение оператору using. Который никогда не забывает удалить объект, даже если код выдает исключение.

Оглавление

Как решить общую ошибку, возникшую в gdi+?

Как исправить эту общую ошибку GDI?

  1. Вместо перезаписи файла сохраните новый файл с именем, отличным от исходного файла.
  2. Основная блокировка файла снимается только при удалении объекта Bitmap.
  3. Убедитесь, что папка, в которую вы пытаетесь сохранить файл, доступна для записи.

Как узнать, какое приложение препятствует завершению работы Windows?

При необходимости вы можете открыть Журналы событий > Журналы Windows > Приложение > События приложения. Теперь на вкладке «Общие» найдите «Следующее приложение попыталось наложить вето на завершение работы». Вы увидите приложения, которые остановили выключение. Это предупреждающее сообщение можно пропустить с помощью редактора реестра.

Как сохранить файл PNG?

Откройте изображение, которое вы хотите преобразовать в PNG, нажав Файл > Открыть. Перейдите к своему изображению и нажмите «Открыть». Когда файл открыт, нажмите «Файл» > «Сохранить как». В следующем окне убедитесь, что в раскрывающемся списке форматов выбран PNG, а затем нажмите «Сохранить».

Какая общая ошибка возникает в GDI+?

Чем заменить imageformat.bmp в GDI+?

Эта же ошибка возникает и при записи в поток памяти. Чтобы обойти это, вы можете повторить приведенный выше код и заменить ImageFormat.Tiff или ImageFormat.Bmp на ImageFormat.Jpeg. Для меня это достигает высоты / ширины 100 000 — я не проверял пределы.

Какова высота изображения в GDI?

Почему я получаю сообщение об ошибке потока изображения в память?

Например, если вы пытаетесь сохранить изображение из потока памяти в файловую систему, вы можете получить эту ошибку. Пожалуйста, если вы используете XP, обязательно добавьте разрешение на запись для учетной записи aspnet в этой папке. Если вы используете сервер Windows (2003, 2008) или Vista, обязательно добавьте разрешение на запись для учетной записи сетевой службы.

Как исправить общую ошибку, возникшую в GDI в сети VB?

Решение 1 Итак, у вас есть два варианта: 1) Оставить поток открытым на весь срок службы изображения. 2) Скопируйте изображение в другое и избавьтесь от исходного потока и изображения, как только вы это сделаете. Теперь вы можете закрыть и удалить исходный поток и изображение.

Использование растрового класса

Windows GDI+ — это основанный на классах API для программистов на C/C++. Это позволяет приложениям использовать графику и форматированный текст как на видеодисплее, так и на принтере. Приложения, основанные на Microsoft Win32 API, не имеют прямого доступа к графическому оборудованию.

Bitmap – это сокращение от BMP – это формат файла изображения, который можно использовать для создания и хранения компьютерной графики. В стандартном растровом изображении каждой точке может быть присвоен свой цвет. Вместе эти точки можно использовать для представления любого типа прямоугольного изображения. Существует несколько различных форматов растровых файлов.

Является ли G exe вирусом?

Некоторые люди обнаруживают, что завершение работы Windows блокируется запущенной программой под названием G. За исключением того, что нет ни G, ни G.exe, ничего даже похожего на G. Несмотря на то, что вы прочитали, это не вирус или другое вредоносное ПО. Это ошибка — в Windows.

Является ли JPEG растровым изображением?

Аналогичным образом большинство других форматов файлов изображений, таких как JPEG, TIFF, PNG и GIF, также хранят растровые изображения (в отличие от векторной графики), но их обычно не называют растровыми изображениями, поскольку внутри они используют сжатые форматы. .

Почему не рекомендуется увеличивать размер растрового изображения?

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

Инкапсулирует растровое изображение GDI+, состоящее из данных пикселей для графического изображения и его атрибутов. Bitmap — это объект, используемый для работы с изображениями, определенными данными пикселей.

В чем разница между растровым изображением и JPEG?

Растровое изображение – это формат файла изображения, который используется для хранения цифровых изображений. Слово bitmap означает карту битов. Они используются для создания реалистичной графики и изображений. . bmp и ….Растровое изображение:

S.NO. JPEG BITMAP
1 Расшифровывается как Joint Photographic Experts Group. Расшифровывается как Map of Bits.

Оглавление

Как устранить общую ошибку в GDI+?

Как исправить эту общую ошибку GDI?

  1. Вместо перезаписи файла сохраните новый файл с именем, отличным от исходного файла.
  2. Основная блокировка файла снимается только при удалении объекта Bitmap.
  3. Убедитесь, что папка, в которую вы пытаетесь сохранить файл, доступна для записи.

Как исправить общую ошибку, возникшую в GDI в сети VB?

Решение 1 Итак, у вас есть два варианта: 1) Оставить поток открытым на весь срок службы изображения. 2) Скопируйте изображение в другое и избавьтесь от исходного потока и изображения, как только вы это сделаете. Теперь вы можете закрыть и удалить исходный поток и изображение.

Использование растрового класса

Windows GDI+ — это основанный на классах API для программистов на C/C++. Это позволяет приложениям использовать графику и форматированный текст как на видеодисплее, так и на принтере. Приложения, основанные на Microsoft Win32 API, не имеют прямого доступа к графическому оборудованию.

Bitmap – это сокращение от BMP – это формат файла изображения, который можно использовать для создания и хранения компьютерной графики. В стандартном растровом изображении каждой точке может быть присвоен свой цвет. Вместе эти точки можно использовать для представления любого типа прямоугольного изображения. Существует несколько различных форматов растровых файлов.

Является ли G exe вирусом?

Некоторые люди обнаруживают, что завершение работы Windows блокируется запущенной программой под названием G. За исключением того, что нет ни G, ни G.exe, ничего даже похожего на G. Несмотря на то, что вы прочитали, это не вирус или другое вредоносное ПО. Это ошибка — в Windows.

Какое приложение препятствует завершению работы?

Сначала запустите сборку в средстве устранения неполадок питания Windows, чтобы проверить и исправить, не мешает ли какая-либо ошибка, связанная с питанием, завершить работу Windows. Это необязательно, но иногда очень полезно. Просто введите «Устранение неполадок» в меню «Пуск» и нажмите клавишу ввода. Прокрутите вниз и найдите Power, нажмите на него и запустите средство устранения неполадок.

Можно ли растровое изображение анимировать?

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

Каковы недостатки использования PNG?

К недостаткам формата PNG относятся:

  • Большой размер файла: цифровые изображения сжимаются до большего размера файла.
  • Не идеально подходит для печатной графики профессионального качества — не поддерживает цветовые пространства, отличные от RGB, такие как CMYK (голубой, пурпурный, желтый и черный).
  • Не поддерживает встраивание метаданных EXIF, используемых большинством цифровых камер.

Инкапсулирует растровое изображение GDI+, состоящее из данных пикселей для графического изображения и его атрибутов. Bitmap — это объект, используемый для работы с изображениями, определенными данными пикселей.

Что такое растровое изображение или вектор?

Растровая (также называемая растровой) графика создается из рядов пикселей разного цвета, которые вместе образуют изображение. Векторная графика состоит не из сетки пикселей, а из фигур, кривых, линий и текста, которые вместе составляют изображение.

Какая общая ошибка возникает в GDI+?

Есть ли такая вещь, как общая ошибка?

Похоже, это печально известная ошибка во всем Интернете. Настолько, что я не смог найти ответ на свою проблему, так как мой сценарий не подходит.

Какова высота изображения в GDI?

Чем заменить imageformat.bmp в GDI+?

Эта же ошибка возникает и при записи в поток памяти. Чтобы обойти это, вы можете повторить приведенный выше код и заменить ImageFormat.Tiff или ImageFormat.Bmp на ImageFormat.Jpeg.Для меня это достигает высоты / ширины 100 000 — я не проверял пределы.

Как узнать, какое приложение препятствует закрытию Windows?

При необходимости вы можете открыть Журналы событий > Журналы Windows > Приложение > События приложения. Теперь на вкладке «Общие» найдите «Следующее приложение попыталось наложить вето на завершение работы». Вы увидите приложения, которые остановили выключение. Это предупреждающее сообщение можно пропустить с помощью редактора реестра.

Почему G не дает Windows завершить работу?

Это ошибка в том, как преобразователь заблокированного завершения работы извлекает имя программы, блокирующей завершение работы, и "G" может появиться, когда есть программа GDI+ (программа, которая рисует что-то на экране), которая переворачивается животом, когда вы отключаются.

Почему я получаю общую ошибку в GDI+?

Bitmap.save(): в GDI+ произошла общая ошибка. Вы получите вышеупомянутую ошибку: в GDI+ произошла общая ошибка. Эта проблема возникает из-за того, что до тех пор, пока растровый объект не будет удален, он создает блокировку базового файла изображения. Таким образом, вы можете сохранить только что сгенерированный файл под другим именем, но не перезаписывать файл из-за блокировки.

Почему в bitmap.save() возникает общая ошибка?

Bitmap.Save (): в GDI+ произошла общая ошибка. Почему возникла эта общая ошибка GDI? Когда вы инициализируете объект Bitmap из изображения, хранящегося на жестком диске, он создает блокировку базового файла изображения. Из-за блокировки при попытке сохранить и перезаписать измененное растровое изображение возникает эта ошибка.

Как исправить ошибку GDI + в методе bitmap.save?

Проблема заключалась в том, что исходный поток уже был удален при попытке сохранить изображение, вызывая исключение GDI+. Исправление этой проблемы состояло в том, чтобы вернуть растровое изображение, не удаляя сам поток, а возвращенный объект растрового изображения. частное растровое изображение getImage(byte[] imageBinaryData) < . . .

Почему мое изображение не сохраняется в GDI+?

Для меня проблема возникла из-за слишком больших размеров TIFF. Все, что было примерно до 62000 пикселей, было в порядке, все, что выше этого размера, вызывало ошибку. для меня это была проблема с путем при сохранении изображения.

Код, который, по моему мнению, вызывает ошибку

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

Ответ написан 17 октября 2019 г., 17:46 по восточному поясному времени.

Ответ написан 17 октября 2019 г., 18:07 по восточному поясному времени.

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

Это должно помочь вам решить проблему.

>>при печати изображений в AR
Исходя из приведенного выше утверждения, я предполагаю, что вы экспортируете отчет в PDF. Если это так и приведенный выше код не помогает, установите для свойства ConvertMetaToPng PdfExportOptions значение True.

Ответ написан 22 октября 2019 г., 13:15 по восточному поясному времени.

Ошибка также возникала при экспорте в Excel и Word, а не только в PDF.
Во всяком случае, я пытался установить для ConvertMetaToPng значение true, но это не помогает.

Я также пытался использовать ImageConverter для замены всех кодов с помощью MemoryStream. Итак, мой код сейчас не использует MemoryStream, поэтому это не должно быть связано с слишком ранним закрытием потока. Из стека

очевидно, что System.Drawing.Image.Save вызывается из элемента управления Image внутри отчета.

Ответ написан 22 октября 2019 г., 20:00 по восточному поясному времени.

Ответ написан 14 июля 2020 г., 17:07 по восточному поясному времени

Привет
Ошибка GDI+ все еще беспокоит меня, несмотря на то, что я заплатил за обновление до версии 14. Ошибка наблюдается во всех отчетах, в которых есть управление изображением с изображением, подаваемым из кода, показанного в исходном вопросе.< br />Мне жаль, что проект слишком велик, чтобы сделать урезанный образец. Кроме того, он прерывистый и его трудно воспроизвести. Всякий раз, когда он отображается, единственным решением, которое мы получаем, является перезапуск пула приложений (т.е. уничтожение всех сеансов и перезапуск сайта), и это очень раздражает.
Пожалуйста, помогите

Ответ написан 14 июля 2020 г., 20:45 по восточному поясному времени.

Кроме того, не могли бы вы поделиться с нами файлом RDF, чтобы мы могли изучить проблему на своей стороне.
Вы можете использовать следующий код для сохранения файла RDF:
SectionReport1.Document.Save( "test1.rdf")

Ответ написан 27 июля 2020 г., 14:45 по восточному поясному времени

Здравствуйте!
Я обновился до версии 14.1.20320, но по-прежнему возникает ошибка GDI+.
В журнале отображается

Похожие статьи:

System.Runtime.InteropServices.ExternalException: общая ошибка в GDI+. в System.Drawing.Image.Save (имя файла строки, кодировщик ImageCodecInfo, EncoderParameters encoderParams)
Привет, я работал с некоторой задачей, когда я загружаю изображение, изображение должно быть сохранено в папке «Изображения» той же папки проекта. это код. [Код]Const bmpW = 777 Const bmpH = 577 If (Pageimage_FileUpload.HasFile) Then message.Text = "" If (Ch.

При сохранении изображения возникает ошибка "В GDI+ произошла общая ошибка". и код ошибки -2147467259 только для больших изображений
Я столкнулся с камнем преткновения с моим последним приложением. Я использую веб-сервисы и WSE 3.0 для загрузки больших изображений (TIFF и JPEG) на центральный сервер. Данные изображения успешно попадают на сервер через веб-службы в виде byte[], но по какой-то причине я не могу сохранять большие изображения на диск. Если размер изображения превышает ~ 5 МБ, я всегда получаю следующее сообщение об ошибке. «Произошла общая ошибка в GDI+». Код ошибки -2147467259. Это происходит в методе image.Save. Поскольку я могу сохранять изображения меньшего размера на диск, я не думаю, что это проблема с правами доступа. Мой код.

Ошибка при сохранении изображения. В GDI+ произошла общая ошибка.
Привет всем, я сохраняю штрих-код в server.mappath. Но он выдает ошибку, поскольку в GDI+ произошла общая ошибка. Я пытаюсь сохранить его в формате BMP. Кто-нибудь может сказать, почему появилась эта ошибка? Dim imgBarcode As System.Drawing.Image = bcp.GetBarcodeImage(dpi, targetArea) Dim ms2 As MemoryStream = New MemoryStream imgBarcode.Save(ms2, System.Drawing.Imaging.ImageFormat.Bmp) &n.

В GDI+ произошла общая ошибка при сохранении
Привет всем, я получаю сообщение об ошибке «Общая ошибка в GDI+» при попытке сохранить изображение после изменения размера. Я дал полное разрешение ASPNET на папку. Я проверил все пути, и они кажутся правильными. Создается пустой файл изображения. Вот часть моего кода. общественное статическое изменение размера System.Drawing.Image (string _strPath) < System.Drawing.Image imgPhoto; использование (Поток потока = новый FileStream (_strPath, FileMode.Open)) imgPhoto = System.Drawing.Image.FromStream (поток); float nPercent = ((float)Percen.

помочь изменить размер загруженного изображения и сохранить его. Получение сообщения «произошла общая ошибка GDI»
У меня есть приложение, которое загружает изображение, изменяет его размер и сохраняет его в сеансе, пока оно отображается, и до тех пор, пока пользователь не решит оставить его или нет. затем он вызывает другую санкцию, чтобы сохранить изображение, которое хранится в переменной сеанса, но в этот момент я получаю сообщение об ошибке в своей живой версии. ошибка: «Произошла общая ошибка GDI». Эта ошибка возникает только в моей живой версии, а это означает, что в моей версии для разработки в Visual Studio ошибка не возникает. также ошибка возникает только с определенным файлом, и не обязательно с большими. Почему это происходит? ниже.

ThumbImage.Save() -- В GDI+ произошла общая ошибка
Здравствуйте, я получаю эту ошибку при попытке сохранить только что созданный эскиз обратно на сервер. Вот мой код: Dim fullSizeImg As System.Drawing.Image, ThumbNailImage As System.Drawing.Image Dim dummyCallBack As System.Drawing.Image.GetThumbnailImageAbort dummyCallBack = New System.Drawing.Image.GetThumbnailImageAbort(AddressOf ThumbnailCallback) fullSizeImg = System.Drawing. Image.FromFile(Server.MapPath(ImageUrl))  .

Помощь с изображениями
Здравствуйте, у меня есть несколько изображений, сохраненных в базе данных. Я хочу получить изображения и отобразить их в виде миниатюр. Но я получаю эту общую ошибку. Это мало что говорит. Когда я искал эту ошибку, в большинстве ответов предполагалось, что это может быть проблема с правами доступа. Но в этом случае нет файлов или папок. Я сохраняю изображения в базе данных, извлекаю изображение, создаю эскиз и записываю его на веб-страницу. Может ли кто-нибудь сказать мне, что может быть не так. Спасибо. *************КОД*************** частный байт[] GetThumbnail(byte[] imagedata) < &.

Сохранение/изменение размера изображения вызывает общую ошибку в GDI+
Я не знаю, почему я получаю общую ошибку в GDI+ при попытке изменить размер и сохранить изображение. Большинство причин этой ошибки, которые я обнаружил в Интернете, связаны с слишком ранним закрытием потока, я не закрываю поток, поэтому я не уверен, почему возникает эта ошибка. ниже я опубликую полное сообщение об ошибке и свой код, кстати, этот код отлично работал на прошлой неделе, только сейчас начал капризничать. В GDI+ произошла общая ошибка. Описание: во время выполнения текущего веб-запроса возникло необработанное исключение. Пожалуйста, просмотрите.

/// частная строка UploadImage(FileUpload fileUpload)

Сохранение столбца «изображение» System.Drawing.Image в базе данных
Из всех примеров, которые я видел при сохранении изображения в базу данных, это всегда PostedFile.InputStream, сохраняемый в базе данных..Но в моем коде я беру этот поток, помещаю его в объект System.Drawing.Image, изменяю его размер, добавляю водяной знак, ТЕПЕРЬ я хочу сохранить изображение в базе данных. Но попытка передать обработанное изображение непосредственно в мой PROC, который вставляется в БД, выдает ошибку: Сведения об исключении: System.ArgumentException: не существует сопоставления из типа объекта System.Drawing.Bitmap в известный собственный тип управляемого поставщика. Кто-нибудь знает, что я нужно сохранить Drawing.Image, чтобы я мог.

AVP осуждает инциденты с насилием на почве ненависти, которые произошли в поезде F, направляющемся в Квинс, в воскресенье, 30 июня – Facebook .
Проект по борьбе с насилием в городе Нью-Йорк, в котором содержится уведомление о названии титула AVP, осуждает инциденты с насилием на почве ненависти, имевшие место в поезде F, направляющемся в Квинс.

«Я думал, что горю»: выживший после взрыва в кафе «Равеншу» рассказывает о моменте взрыва огненного шара. после того, как взрыв разорвал сцену и ранил .

Как любовь победила ненависть в чарльстонской церкви, где произошла стрельба
Часто с грустью отмечают, что расовый раскол в Америке не более заметен, чем в богослужении. Черные ходят в церкви черных, белые молятся вместе с ними.

Треть зарегистрированных сексуальных нападений на территории кампуса в штате Виктория произошла в одном университете
Более трети случаев сексуального насилия в университетах штата Виктория, о которых полиция сообщила за последнее десятилетие, были совершены в одном высшем учебном заведении. .

С годами произошел сдвиг в мышлении
Невежественное и предвзятое поведение родителей Гамми, бросивших своего ребенка навстречу неопределенности жизни в другой стране с кем-то.

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

Свяжитесь с ABC Science Online › [произошла ошибка при обработке этой директивы] (ABC Science)
Все самые последние научные новости, подробные сведения, игры и разговоры со всей Австралии и всего мира. .

Кибератака NRC произошла за несколько недель до отправки предупреждения
. информировать сотрудников о взломе CBC.ca home Помогите найти игрока CBC Отправить Поиск Политика - 22 февраля 2015 г. - 2:45 Произошла кибератака NRC .

Во взорвавшемся доме произошла «деятельность, связанная с наркотиками»: полиция Барри
В субботу полиция заявила, что взрыв в гараже, в результате которого 11 человек были госпитализированы в Барри, Онтарио, мог быть связан с наркотиками.< /p>

Натан О'Брайен пропал без вести: полиция сообщает, что в семейном доме произошел инцидент с применением насилия
Полиция Калгари, расследующая исчезновение пятилетнего мальчика, а также его бабушки и дедушки, сообщает, что в доме, где .

р>

Если вы пытаетесь изменить растровое изображение, вы можете столкнуться со следующей ошибкой GDI, которая носит общий характер и не содержит никаких подробностей. Поскольку исключение не предоставляет более подробной информации, выяснить основную причину очень сложно.

2 причины возникновения этой общей ошибки GDI

GDI+ выдает ошибку, когда не может сохранить файл. Ниже приведены 2 причины возникновения этой ошибки.

  • Когда вы инициализируете объект Bitmap из изображения, хранящегося на жестком диске, он создает блокировку базового файла изображения. Из-за блокировки при попытке сохранить и перезаписать измененное растровое изображение возникает эта ошибка.
  • При сохранении файла убедитесь, что у пользователя есть разрешение на запись в папку. Это важно, когда вы получаете эту ошибку на веб-сайте, потому что веб-сайт работает с ограниченными разрешениями.

3 способа исправить общую ошибку GDI

Есть три способа решить эту проблему.

  • Вместо перезаписи файла сохраните новый файл с именем, отличным от исходного файла.
  • Основная блокировка файла снимается только при удалении объекта Bitmap. После снятия блокировки вы можете перезаписать файл. Если вам необходимо перезаписать существующий файл, создайте отдельный растровый объект из существующего растрового объекта. Теперь удалите старый растровый объект, который снимет блокировку с файла изображения. Внесите необходимые изменения в новый растровый объект и сохраните новый растровый объект с исходным именем файла изображения.
  • Убедитесь, что папка, в которую вы пытаетесь сохранить файл, доступна для записи. В веб-приложении пул приложений или учетная запись, которая запускает веб-сайт, должны иметь доступ на запись к папке, чтобы сохранить файл. Например, если вы используете веб-сайт в разделе «DefaultAppPool», вы должны предоставить пользователю «IIS AppPool\DefaultAppPool» доступ «на запись» к папке.

Пример кода, который вызывает ошибку

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

Пример кода с исправлением

Как показано в приведенном выше примере, как только я создаю растровое изображение из изображения, я удаляю исходное растровое изображение. Он снимает блокировку с файла. Следовательно, я могу перезаписать тот же файл обновленным растровым изображением.

Поделиться

53 комментария

Отменить ответ

~ПОМОГИТЕ МНЕ С ЭТОЙ ОШИБКОЙ~

Во время выполнения текущего веб-запроса возникло необработанное исключение. Информацию о происхождении и расположении исключения можно определить с помощью приведенной ниже трассировки стека исключений.

В этом сообщении блога представлены три способа исправить эту ошибку. Вы пробовали эти решения?

С уважением,
Вишал Монпара

пробовал много раз, но одна и та же ошибка….
Заполнение одной правительственной формы, я думаю, это проблема их сервера.
Каково ваше мнение по этому поводу

Убедитесь, что пул приложений, на котором запущен веб-сайт, имеет разрешение на запись в папку, в которой вы пытаетесь сохранить файл.

С уважением,
Вишал Монпара

Я искал решение этой проблемы. Это помогло. Спасибо за ваш вклад.
Приветствую Клауса

Спасибо за публикацию. Это действительно помогло!

Спасибо, это действительно помогло мне решить мою проблему.

Спасибо за решение
Это идеальное решение моей проблемы

нет необходимости во всем этом… после удаления просто добавьте GC.Collect(); …тат все

Этот пост решает мою проблему.

Общая общая функция CopyToStandaloneBitmap(ByRef InputImage As Image) As Image

Затемнить память как New MemoryStream()
InputImage.Save(memory, Imaging.ImageFormat.Png)

Вернуть Image.FromStream(memory)
Завершить функцию

Общая общая функция InitializeStandaloneImageCopy(ByVal strPathFile As String) As Image

Если strPathFile ничего не возвращает, то ничего не возвращает
If strPathFile.Length

// новое изображение с прозрачным альфа-слоем
используя (var bitmap = new Bitmap(330, 18, PixelFormat.Format32bppArgb))
используя (var graphics = Graphics.FromImage(bitmap))
// добавляем сглаживание
graphics.SmoothingMode = SmoothingMode.AntiAlias;

использование (var font = new Font("Arial", 14.0f, GraphicsUnit.Pixel))
использование (var brush = new SolidBrush(Color.White))
// рисуем
graphics.DrawString(user.Email, шрифт, кисть, 0, 0);
>
>
>

// устанавливаем ответ
Response.Clear();
Response.ContentType = "image/png";
Response.BufferOutput = true;

// записываем в выходной поток
bitmap.Save(Response.OutputStream, ImageFormat.Png);
Response.Flush();
>

мой хороший пост амиго
мой хороший совет и ип плюс mas es que уменьшить el tamaño de las imagenes
sin perder calidad

protected void Page_Load(отправитель объекта, EventArgs e)
if (!IsPostBack)
string strPathToImage = “captchaimg/captcha.jpg”;
string strText = fncDrawCaptcha(Server.MapPath(strPathToImage));
imgCaptcha.ImageUrl = strPathToImage;
Сеанс[“strText”] = strText;

>
публичная строка fncDrawCaptcha(строка пути)

int[] BackgroundColor = new int[] < 255, 255, 255 >;
bool RandomBackgroundNoiseColor = true;
bool RandomTextColor = true;
int[] BackgroundNoiseColor = new int[] < 150, 150, 150 >;
int[] TextColor = new int[] < 200, 200, 200 >;
Стиль штриховки BackgroundNoiseTexture = Стиль штриховки.Мин;
целая длина = 6;
целая высота = 100;

целая ширина = 200;
ширина = ширина + ((длина – 6) * 30);
Random ranRotate = new Random();
string strText = System.Guid.NewGuid().ToString();
strText = strText.Replace("-", String.Empty);
strText = strText.Substring(0, длина);

Растровое изображение bmpCanvas = новое растровое изображение(ширина, высота, PixelFormat.Format24bppRgb);
Графика graCanvas = Graphics.FromImage(bmpCanvas);
RectangleF recF = новый RectangleF(0, 0, ширина, высота);
Кисть bruBackground = default(Кисть);
SolidBrush letterBrush = default(SolidBrush);

if (RandomBackgroundNoiseColor == true)
bruBackground = new HatchBrush(BackgroundNoiseTexture, Color.FromArgb((ranRotate.Next(0, 255)), (ranRotate.Next(0, 255)), (ranRotate. Next(0, 255))), Color.FromArgb(BackgroundColor[0], BackgroundColor[1], BackgroundColor[2]));
>
else
bruBackground = new HatchBrush(BackgroundNoiseTexture, Color.FromArgb(BackgroundNoiseColor[0], BackgroundNoiseColor[1], BackgroundNoiseColor[2]), Color.FromArgb(BackgroundColor[0], Цвет фона[1], Цвет фона[2]));
>

if (RandomTextColor == true)
letterBrush = new SolidBrush(Color.FromArgb((ranRotate.Next(0, 255)), (ranRotate.Next(0, 255)), (ranRotate.Next( 0, 255))));
>
else
letterBrush = new SolidBrush(Color.FromArgb(TextColor[0], TextColor[1], TextColor[2]));
>
System.Drawing.Drawing2D.Matrix matRotate = new System.Drawing.Drawing2D.Matrix();
целое я = 0;
для (я = 0; я

Спасибо, Джерри Лиз. Мое приложение нормально работало в моей среде разработки, но выдавало ошибку «В GDI+ произошла общая ошибка. ” всякий раз, когда я пытался запустить опубликованную версию на веб-сервере. Дал IIS_USRS разрешения на запись в папку, и теперь все хорошо.

Большое спасибо — этот код был чрезвычайно полезен для решения проблемы, которая беспокоила меня очень долгое время. То, как это было написано и объяснено, супер. Еще раз спасибо

Вот пример кода, который будет исправлять некоторые ошибки. Используя это, мы не можем получить ошибку GDI + на локальном хосте, но когда мы загружаем на веб-сервер, она не может дать ту же ошибку

Изображение newImage = ByteArrayToImage(armd);
//String fn = ImageName + «.jpg»;
String sd = Server.MapPath («Изображения»);
if (sd.EndsWith("\\") == false)
sd += "\\";
>
sd += fn;
newImage.Save(sd);
вернуть fn;

>
public Image ByteArrayToImage(Byte[] ByteArray)
MemoryStream ms = new MemoryStream(ByteArray);
Изображение ReturnImage = Image.FromStream(ms);
вернуть ReturnImage;
>

Я все еще получаю сообщение об ошибке

Ниже мой код, любая помощь будет здорово

Private Sub savebitmap()
Затемнить strFile как строку = Application.StartupPath + «\» + Patid.ToString + «.jpg»
Затемнить исходное изображение как изображение = Image.FromFile(strFile)
Тусклый tempBmp As New Bitmap(originalImage.Width, originalImage.Height)
Dim g As Graphics = Graphics.FromImage(originalImage)
g.DrawImage(tempBmp, 0, 0, originalImage.Width, originalImage .Height)
originalImage.Dispose()
originalImage = tempBmp
g.Dispose()
originalImage.Save(strFile)
End Sub

Здравствуйте, я получаю сообщение об ошибке: в gdi+ произошла общая ошибка при сохранении изображения в поток

Bitmap b = new Bitmap( w, h, -stride, PixelFormat.Format24bppRgb, (IntPtr) scan0 );
дескриптор.Free();
сохраненный массив = null;
Старое изображение = pictureBox.Image;
pictureBox.Image = b;
поток = новый MemoryStream();
b.Save(поток, ImageFormat.Jpeg); // Получение ошибки в этой строке.
b.Dispose();

Я не могу решить эту ошибку.
Мы будем очень признательны за любые предложения.

Эй, чувак, большое спасибо, братан…… ты действительно спас мне день.. я много искал по этому поводу и нашел много вещей, но твоё решение отлично работает для меня…

С уважением,
арпан шах.

это очень хороший код ………………………………

Моя проблема в том, что у меня есть окно с изображением, и в этом окне я рисую несколько изображений……
и теперь я хочу сохранить все это изображение в одном
jpg или другом формате изображения, поэтому……< /p>

КАК СОХРАНИТЬ ВСЕ ИЗОБРАЖЕНИЯ В КОНКРЕТНОЕ ИЗОБРАЖЕНИЕ………………..

возможна любая помощь ………………

если найдете, ответьте ……….

Вы передали последнюю часть с правильными параметрами в g.DrawImage(…)

Частная функция GetImage(ByVal path As String) As Drawing.Bitmap
Тусклый вывод As Drawing.Bitmap = Nothing

Использование img в качестве Drawing.Bitmap = New Drawing.Bitmap(path)
output = New Drawing.Bitmap(img.Width, img.Height)
Использование g в качестве Drawing.Graphics = Drawing.Graphics .FromImage(output)
g.DrawImage(img, New Drawing.Rectangle(0, 0, output.Width, output.Height), 0, 0, img.Width, img.Height, Drawing.GraphicsUnit.Pixel )
Конец использования
Конец использования

Я использую аналогичный код для создания подписи игрока Xbox 360 на своем сайте, и при смене хостинг-провайдера он перестает работать.

Для тех из вас, кто столкнулся с этой ошибкой, и это не работает... проверьте права доступа к папке, в которую вы записываете изображение... чтобы пользователь мог ЗАПИСАТЬ в папку.

Я реализовал следующий код, чтобы сделать миниатюру исходного изображения.
Этот код отлично работает для одной папки «Игрушки», как указано ниже, но когда я изменил папку с «Игрушки» на «Книги» по тому же пути выдает ошибку «Произошла общая ошибка в gdi+»

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

Затемнение objImage, objThumbnail As System.Drawing.Image
Затемнение shtWidth, shtHeight As Short
objImage = Drawing.Image.FromFile("D:\My Documents\Pictures\")
shtWidth = 71
shtHeight = 88
objThumbnail = objImage.GetThumbnailImage(shtWidth, shtHeight, Nothing, System.IntPtr.Zero)
Response.ContentType = «image/jpeg»
' objThumbnail.Save(Response.OutputStream, Drawing.Imaging.ImageFormat.Jpeg)
objThumbnail.Save("C:\inetpub\wwwroot\Toys\thumbnails\Pics1.jpg")
objImage.Dispose()
objThumbnail.Dispose()

(код продолжение)
………
b.Save("C:\\abc.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
b.dispose();
>

Можете ли вы помочь решить эту проблему?

хе,
я искал решение этой ошибки, когда наткнулся на эту страницу. Я получаю изображение с веб-камеры и сохраняю его на диск. тем не менее, иногда он работает нормально, но иногда выдает это исключение. Это код;

void CaptureImage()
try
w = videoInfoHeader.BmiHeader.Width;
h = videoInfoHeader.BmiHeader.Height;
if (((w & 0x03) != 0) || (w 4096) || (h 4096))
return;
шаг = ш * 3;
handle = GCHandle.Alloc(savedArray, GCHandleType.Pinned);
scan0 = (int)handle.AddrOfPinnedObject();
scan0 += (h – 1) * шаг;
b = new Bitmap(w, h, -stride, PixelFormat.Format24bppRgb, (IntPtr)scan0);
дескриптор.Free();
сохраненный массив = null;
LivevideoBox.Image = b;
b.Save("C:\\abc.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);

отличная работа, спасибо! Кто бы мог подумать, что метод загрузки удерживает блокировку файла… но эта блокировка МЕШАЕТ сохранению! сумасшедший!

Это сводило меня с ума, но я смотрел на свои буферы изображений, не принимая во внимание блокировки файлов. Спасибо!

FileStream() не решает ту же проблему, что и:
«если поток был уничтожен во время жизни объекта Bitmap, вы не можете успешно получить доступ к изображению, основанному на потоке. Например, функция Graphics.DrawImage() может не выполниться после уничтожения потока».

спасибо за это…

это заставит меня пойти туда на некоторое время.

Забудьте о том, что я только что написал, не знаю, почему ваш пример отлично работает с маленьким путем, но у меня проблемы с «длинным» путем

например, попробуйте тот же фрагмент кода с
%temp%\ImageConvertion\exemple.jpg

Забудьте о том, что я только что написал, не знаю, почему ваш пример отлично работает с маленьким путем, но у меня проблемы с «длинным» путем

например, попробуйте тот же фрагмент кода с
%temp%\ImageConvertion\exemple.jpg

Отлично, это именно то, что я искал.
Спасибо

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

Opps
image = new Image(fs);
должно быть
image = Image.FromStream(fs);

Я предпочитаю этот метод, потому что он никогда не блокирует исходный файл…
Image image = null;

Читайте также: