9 / 2 / 0
Регистрация: 18.09.2013
Сообщений: 98
|
||||||
1 | ||||||
.NET 4.x Ошибка перезаписи файла: В GDI+ возникла ошибка общего вида16.12.2014, 18:15. Показов 3373. Ответов 11
Метки нет (Все метки)
Написал небольшой граф редактор в visual studio 2013. Когда сохраняю файл с таким же именем, вылазит окошко о подтверждении перезаписи. Нажимаю "Да" и происходит вылет.
Вот кусочек кода:
Добавлено через 1 минуту Вот такая ошибка
0
|
16.12.2014, 18:15 | |
Ответы с готовыми решениями:
11
Ошибка "В GDI+ возникла ошибка общего вида." В GDI+ произошла ошибка общего вида при сохранении изображений из picturebox'a в файл System.Runtime.InteropServices.ExternalException: "В GDI+ возникла ошибка общего вида." Ошибка сохранения файла В GDI+ возникла ошибка общего вида |
649 / 601 / 92
Регистрация: 19.03.2012
Сообщений: 1,128
|
|
16.12.2014, 18:48 | 2 |
А если обработать? "Засуньте" эту часть кода в Try...Catch и посмотрим, что выдаст.
1
|
9 / 2 / 0
Регистрация: 18.09.2013
Сообщений: 98
|
|
16.12.2014, 19:10 [ТС] | 3 |
Nachrichter,
0
|
9 / 2 / 0
Регистрация: 18.09.2013
Сообщений: 98
|
|
16.12.2014, 19:57 [ТС] | 5 |
Памирыч, Dispose прямо использовать не получится, ибо мы "диспоузнем битмап", а затем попытаемся его сохранить. И зачем использовать Using?
0
|
Почетный модератор
21413 / 9147 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
|
|
16.12.2014, 20:04 | 6 |
sub-r-outine, освобождайте после сохранения.
Раз у Вас такая ошибка, значит в этот файл уже производилась запись, и объекты все еще привязаны к этому файлу. Ведь речь о перезаписи, не так ли?
1
|
9 / 2 / 0
Регистрация: 18.09.2013
Сообщений: 98
|
|||||||||||
16.12.2014, 21:21 [ТС] | 7 | ||||||||||
есть 3 объекта: битмап - bmp as bitmap, g,grap as graphics. Объект "g" рисует на битмапе, объект grap рисует на пикчербоксе.
Честно говоря код не мой. Я вот попробовал убрать grap, и программа все так же работает, не понимаю зачем он нужен. Ну я нашел способ обратки перезаписи: if io.file.exists(savefiledialog1.filename)=true then exit sub Добавлено через 5 минут О, убрав объект grap прогрмамма прекрасно работает и также происходит перезапись фалов без ошибок. Тогда к чему это?
а, нет, не перезаписывает...
0
|
Почетный модератор
21413 / 9147 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
|
|
17.12.2014, 13:47 | 8 |
Создал такой же проект, не понимаю, что не работает?
Загрузил картинку, включил чекбокс, порисовал, сохранил на стол. Порисовал еще, снова сохранил (Button2), изменения внеслись, ошибок нет. Где у Вас возникает исключение? Каком методе и строке и при каких действиях?
1
|
9 / 2 / 0
Регистрация: 18.09.2013
Сообщений: 98
|
|
17.12.2014, 16:20 [ТС] | 9 |
Памирыч,
вот тут bmp.Save(SaveFileDialog1.FileName)
0
|
9 / 2 / 0
Регистрация: 18.09.2013
Сообщений: 98
|
||||||
17.12.2014, 18:02 [ТС] | 11 | |||||
Памирыч, действительно странно...
Вот нашел на англоязычном форуме фикс этой проблемы. Суть такова что эта прога открывает файл, затем рисует на нем надпись и сохраняет в тот же файл и без ошибок (лично проверил). Сейчас буду применять к своему коду
0
|
834 / 642 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
|
18.12.2014, 13:00 | 12 |
Сообщение было отмечено Памирыч как решение
Решение
sub-r-outine, оборачивай Bitmap в Using. Но в таком случае придётся его перерисовать, чтобы потом можно было сохранить. Вообще, не особо понимаю, почему bitmap, полученный при помощи Bitmap.FromFile держится за этот файл, но, тем не менее, это так.
1
|
18.12.2014, 13:00 | |
18.12.2014, 13:00 | |
Помогаю со студенческими работами здесь
12
В gdi+ возникла ошибка общего вида Gdi+ возникла ошибка общего вида В GDI+ возникла ошибка общего вида В GDI+ возникла ошибка общего вида Image Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |