Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.93/55: Рейтинг темы: голосов - 55, средняя оценка - 4.93
Rillaxac
Заблокирован
1

При сохранении битмапа возникает такая ошибка: "В GDI+ возникла ошибка общего вида"

23.03.2015, 11:55. Просмотров 11337. Ответов 19
Метки нет (Все метки)

помогите пожалуйста при сохранении битмапа возникает такая ошибка: "В GDI+ возникла ошибка общего вида."

делаю так:
C#
1
2
3
var bmp = new Bitmap(args[2]);
...
bmp.Save(args[2], System.Drawing.Imaging.ImageFormat.Bmp);
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2015, 11:55
Ответы с готовыми решениями:

В GDI+ возникла ошибка общего вида или процесс занят
Bitmap printscreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width,...

"В GDI+ возникла ошибка общего вида" и picturebox
Добрый день. При загрузке и выгрузке картинки в picturebox вываливается ошибка в GDI+. Использую...

В GDI+ возникла ошибка общего вида
Здравствуйте! Вот почему так работает: public static Image AddAddiativeNoise(Image image,...

Не работает Xml-сериализация: "Возникла ошибка при отражении типа."
Добрый день! Помогите, пожалуйста, решить проблему. Вот сериализуемый объект. Ошибка ссылается на...

XML сериализация: Возникла ошибка при отражении типа "Namespace1.Converter"
пытаюсь сериализовать класс. на строчке System.Xml.Serialization.XmlSerializer writer = new...

19
kolorotur
Эксперт .NET
11305 / 9200 / 2334
Регистрация: 17.09.2011
Сообщений: 15,808
Завершенные тесты: 1
23.03.2015, 12:10 2
Цитата Сообщение от Rillaxac Посмотреть сообщение
C#
1
var bmp = new Bitmap(args[2]);
Что находится в args[2]?
Оно понятно, что путь. Какой именно? Проверьте, чтобы он был корректен.

Цитата Сообщение от Rillaxac Посмотреть сообщение
...
Удалите эту часть — ошибка остается?
0
Rillaxac
Заблокирован
23.03.2015, 12:14  [ТС] 3
Цитата Сообщение от kolorotur Посмотреть сообщение
Что находится в args[2]?
Оно понятно, что путь. Какой именно? Проверьте, чтобы он был корректен.
корректно, просто строка типа "picture.bmp"
Цитата Сообщение от kolorotur Посмотреть сообщение
Удалите эту часть — ошибка остается?
да
0
kolorotur
Эксперт .NET
11305 / 9200 / 2334
Регистрация: 17.09.2011
Сообщений: 15,808
Завершенные тесты: 1
23.03.2015, 12:18 4
Лучший ответ Сообщение было отмечено Rillaxac как решение

Решение

Цитата Сообщение от Rillaxac Посмотреть сообщение
да
Попробуйте тогда сохранить изображение под другим именем, например "picture_copy.bmp".
1
23.03.2015, 12:18
Rillaxac
Заблокирован
23.03.2015, 12:26  [ТС] 5
Цитата Сообщение от kolorotur Посмотреть сообщение
Попробуйте тогда сохранить изображение под другим именем, например "picture_copy.bmp".
все уже и сам дошел, оказывается не нравится ему что я под тем же именем сохраняю...

Добавлено через 4 минуты
а не подскажите мне тогда как же все таки сделать чтобы сохранялось под тем же именем? это важно ! просто если я так сохраняю ошибка, пытался удалить файл перед сохранением пишет файл уже используется (соответственно моим же приложением, он же в битмап загружен), но мне надо именно под тем же именем принципиально !

Добавлено через 1 минуту
может быть можно получить как то этот битмап в буфер, закрыть объект и сохранить буфер в файл? только как получить объект в буфер?
0
kolorotur
Эксперт .NET
11305 / 9200 / 2334
Регистрация: 17.09.2011
Сообщений: 15,808
Завершенные тесты: 1
23.03.2015, 12:35 6
Цитата Сообщение от Rillaxac Посмотреть сообщение
может быть можно получить как то этот битмап в буфер, закрыть объект и сохранить буфер в файл?
Конечно:
C#
1
2
3
4
5
6
7
8
9
Bitmap bmp;
using (var fs = File.OpenRead(args[2]))
   bmp = new Bitmap(fs);
 
using (bmp)
{
   ...
   bmp.Save(args[2], System.Drawing.Imaging.ImageFormat.Bmp);
}
0
Rillaxac
Заблокирован
23.03.2015, 12:37  [ТС] 7
Цитата Сообщение от kolorotur Посмотреть сообщение
Конечно:
ну можно и так а то я уже по другому решил))0
C#
1
2
3
4
5
var bmp = new Bitmap(args[2]);
var stream = new MemoryStream();
bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
bmp.Dispose();
File.WriteAllBytes(args[2], stream.GetBuffer());
0
kolorotur
Эксперт .NET
11305 / 9200 / 2334
Регистрация: 17.09.2011
Сообщений: 15,808
Завершенные тесты: 1
23.03.2015, 13:04 8
Цитата Сообщение от Rillaxac Посмотреть сообщение
а то я уже по другому решил
Так памяти в два раза больше на каждое изображение используется
0
UAA1979
0 / 0 / 1
Регистрация: 31.10.2014
Сообщений: 44
01.02.2017, 21:17 9
Предыстория тут

Теперь вот что у меня получается. Если изображение из базы, JPG Формата, то Выдает ошибку(смотрите вложение) а если .png то все работает. Вот код :
C#
1
2
3
4
5
6
7
8
9
10
11
 byte[] img = null;
                 
 
                    if (vessel_pic.Image != null)
                    {
                        MemoryStream ms = new MemoryStream();
                        vessel_pic.Image.Save(ms, vessel_pic.Image.RawFormat);
                        img = ms.ToArray();
 
                         
                    }
0
Миниатюры
При сохранении битмапа возникает такая ошибка: "В GDI+ возникла ошибка общего вида"  
UAA1979
0 / 0 / 1
Регистрация: 31.10.2014
Сообщений: 44
04.02.2017, 05:19 10
Никто не ответит?
0
OwenGlendower
Супер-модератор
Эксперт .NET
10587 / 9100 / 3882
Регистрация: 17.03.2014
Сообщений: 18,228
Записей в блоге: 1
Завершенные тесты: 2
04.02.2017, 07:48 11
UAA1979, посмотри есть ли вложенное исключение (InnerException) и если да, то что написано в нем. Для этого нажми на ссылку "View detail..." в окне исключения и VS покажет тебе полную информацию о исключении.
1
UAA1979
0 / 0 / 1
Регистрация: 31.10.2014
Сообщений: 44
09.02.2017, 01:37 12
Извините что так поздно отвечаю просто не заметил( Насчет ошибки я нажимаю показать детали но ничего нового не показывает:
System.Runtime.InteropServices.ExternalException occurred
HResult=-2147467259
Message=В GDI+ возникла ошибка общего вида.
Source=System.Drawing
ErrorCode=-2147467259
StackTrace:
в System.Drawing.Image.Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams)
в MWD_1.main_gate.v_add_btn_Click(Object sender, EventArgs e) в c:\Users\Karashka\Desktop\C#\MVD-2bad\MVD-2\main_gate.cs:строка 235
InnerException:
0
Миниатюры
При сохранении битмапа возникает такая ошибка: "В GDI+ возникла ошибка общего вида"  
OwenGlendower
Супер-модератор
Эксперт .NET
10587 / 9100 / 3882
Регистрация: 17.03.2014
Сообщений: 18,228
Записей в блоге: 1
Завершенные тесты: 2
09.02.2017, 16:14 13
UAA1979, раскрой исключение в окне View Detail и посмотри точно ли в InnerException ничего нет?
0
UAA1979
0 / 0 / 1
Регистрация: 31.10.2014
Сообщений: 44
09.02.2017, 19:04 14
И опять вы правы. Показывает нуль. Расскажу как бывает. Я выбираю из списка айтем. Он выбрасывает данные и изображение из базы на pictureBox. Я меняю данные но не изображение и хочу добавить как новый айтем. Вот тогда то и выходит эта ошибка. На pictureBox е по умолчанию стоит изображение и если нету изображения он добовляет эту. Но если из базы загрузить изображение то выходит эта ошибка.
0
Миниатюры
При сохранении битмапа возникает такая ошибка: "В GDI+ возникла ошибка общего вида"  
UAA1979
0 / 0 / 1
Регистрация: 31.10.2014
Сообщений: 44
09.02.2017, 19:07 15
Да кстати если в базе pnq то нет проблем
0
OwenGlendower
Супер-модератор
Эксперт .NET
10587 / 9100 / 3882
Регистрация: 17.03.2014
Сообщений: 18,228
Записей в блоге: 1
Завершенные тесты: 2
09.02.2017, 19:23 16
UAA1979, я как раз таки надеялся что в InnerException что-то будет. Посмотри чему равен в этот момент vessel_pic.Image и vessel_pic.Image.RawFormat для png и jpeg. Может с ними что-то не так.
0
UAA1979
0 / 0 / 1
Регистрация: 31.10.2014
Сообщений: 44
09.02.2017, 20:31 17
А как посмотреть не подскажите? Как то можно вывести изображение в
C#
1
MessageBox. Show
?
0
OwenGlendower
Супер-модератор
Эксперт .NET
10587 / 9100 / 3882
Регистрация: 17.03.2014
Сообщений: 18,228
Записей в блоге: 1
Завершенные тесты: 2
09.02.2017, 20:44 18
UAA1979, запусти код под отладчиком
0
UAA1979
0 / 0 / 1
Регистрация: 31.10.2014
Сообщений: 44
14.02.2017, 22:45 19
Разобрался с отладчиком. Ничего не показывает просто на этом месте сценарий останавливается. Никакой ошибки ничего кроме то что выдает . 0 ошибок 0 предупреждений Где смотреть что передает в этот момент ума не приложу(
0
Миниатюры
При сохранении битмапа возникает такая ошибка: "В GDI+ возникла ошибка общего вида"  
TopLayer
881 / 638 / 316
Регистрация: 23.10.2016
Сообщений: 1,523
Завершенные тесты: 7
15.02.2017, 13:48 20
UAA1979, кто ж в режиме Release дебажит!
0
15.02.2017, 13:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2017, 13:48

При установке своего приложения возникает ошибка "Отказано в доступе по пути"
Доброго времени суток. Уважаемые, помогите устранить ошибку. Очень срочно. Расчитываю на вашу...

При подключении второго клиента к серверу возникает ошибка "IAsyncResult не был получен"
Всем привет, у меня проблема с асинхронными сокетами. Суть: Пишу простенький чат, написал сервер и...

Синхронизация файлов в двух папках. При работе с большими файлами возникает ошибка "Файл занят другим процессом"
Доброго времени суток. У меня такой вопрос. Пишу программу для синхронизации данных в двух...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru