Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблема с загрузкой картинки в базу "В GDI+ возникла ошибка общего вида" / 8 сообщений из 8, страница 1 из 1
08.11.2012, 14:21
    #38030279
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с загрузкой картинки в базу "В GDI+ возникла ошибка общего вида"
Надо мне картинки в базу загружать.

Пользуюсь хорошо проверенным кодом

Код: c#
1.
2.
3.
MemoryStream ms = new MemoryStream();
img.Save(ms, Imaging.ImageFormat.Bmp);
sqlImgUpdate.Parameters["@img"].Value = ms.GetBuffer();



На домашнем компе все работало нормально.

На работе начала вылетать сабжевая ошибка на операторе img.Save.

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

Нормально работает, значит комп не причем. Может дело в оси или версии NetFramework ?
Дома Win 7, на работе XP. Проверить сейчас этого не могу, но могу попробовать понизить версию до версии работающей программы. Правда там 2, а эту могу понизить до 3.5.

Понизил. Вылетели ошибки, что не могу что-то преобразовать в дизайнере главной формы для SplitContainer.
Знал бы что понадобится, сохранил бы полный текст.
.
Что бы убрать ошибки дизайнера немного передвинул разделитель SplitContainer.
О чудо! Картинки записались в базу!

Однако при следующей загрузке опять вылетела та же ошибка

Подергал разделитель SplitContainer - не помогло. Еще интересно то, что разделитель SplitContainer находится не на той форме, где я гружу картинки.

Уже не знаю куда копать.
Не хочется переделывать и хранить в файловой системе.
...
Рейтинг: 0 / 0
08.11.2012, 14:35
    #38030315
beg-in-er
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с загрузкой картинки в базу "В GDI+ возникла ошибка общего вида"
Cat2,
а точно эта строка ошибается?
img.Save(ms, Imaging.ImageFormat.Bmp);
а если не в стрим, а на винт сохранять , ошибка будет?

а мож картинко кривовата.
...
Рейтинг: 0 / 0
08.11.2012, 14:36
    #38030319
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с загрузкой картинки в базу "В GDI+ возникла ошибка общего вида"
Cat2,
попробуйте сделать проще
Код: c#
1.
 sqlImgUpdate.Parameters["@img"].Value = new ImageConverter().ConvertTo(img, typeof(byte[]));
...
Рейтинг: 0 / 0
08.11.2012, 15:18
    #38030415
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с загрузкой картинки в базу "В GDI+ возникла ошибка общего вида"
beg-in-erа если не в стрим, а на винт сохранять , ошибка будет?

а мож картинко кривовата.
Картинки всякие пробовал.

На винт не пробовал. Попробую.
Где-то в степиCat2,
попробуйте сделать проще
Код: c#
1.
 sqlImgUpdate.Parameters["@img"].Value = new ImageConverter().ConvertTo(img, typeof(byte[]));



Попробовал. Выдает ошибку

Потом так попробовал

Код: c#
1.
2.
byte[] imgb = (byte[])new ImageConverter().ConvertTo(img, typeof(byte[]));
                


и так
Код: c#
1.
var imgb = (byte[])new ImageConverter().ConvertTo(img, typeof(byte[]));



Все равно ошибка
...
Рейтинг: 0 / 0
08.11.2012, 15:33
    #38030462
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с загрузкой картинки в базу "В GDI+ возникла ошибка общего вида"
Cat2,
ну а если так, что скажет итнрига однако..
Bitmap d=new Bitmap(img);
byte[] imgb = (byte[])new ImageConverter().ConvertTo(d, typeof(byte[]));
...
Рейтинг: 0 / 0
08.11.2012, 15:48
    #38030505
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с загрузкой картинки в базу "В GDI+ возникла ошибка общего вида"
Где-то в степиBitmap d=new Bitmap(img);
byte[] imgb = (byte[])new ImageConverter().ConvertTo(d, typeof(byte[]));

Вот это помогло. Черт, я бы и сам мог до этого дойти. У меня картинка загружается из файла, а в базу идет она и ее уменьшенная копия. Эту копию я делал внутри процедуры.

Поменял строчки присвоения параметров и мимо иконки проскочило без ошибок.

Та, на которой ошибка вылезала, была получена как параметр функции. Передавался в нем PictureBox.Image как
Image.

Всем спасибо за участие!

Дополнительно узнал про ImageConverter

========
Однако все равно не понятно, почему дома все работало? Ну да ифиг с ним
...
Рейтинг: 0 / 0
08.11.2012, 17:59
    #38030801
beg-in-er
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с загрузкой картинки в базу "В GDI+ возникла ошибка общего вида"
Cat2,

дык одинаковые же строки. только во второй d это битмапа, а что такое img тут невидно.
Код: c#
1.
2.
3.
var imgb = (byte[])new ImageConverter().ConvertTo(img, typeof(byte[]));

byte[] imgb2 = (byte[])new ImageConverter().ConvertTo(d, typeof(byte[])); 
...
Рейтинг: 0 / 0
08.11.2012, 19:01
    #38030916
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с загрузкой картинки в базу "В GDI+ возникла ошибка общего вида"
beg-in-erCat2,

дык одинаковые же строки. только во второй d это битмапа, а что такое img тут невидно.
Код: c#
1.
2.
3.
var imgb = (byte[])new ImageConverter().ConvertTo(img, typeof(byte[]));

byte[] imgb2 = (byte[])new ImageConverter().ConvertTo(d, typeof(byte[])); 


Да. Одинаковые. Но когда не получается, проверяешь все варианты
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблема с загрузкой картинки в базу "В GDI+ возникла ошибка общего вида" / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]