Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошыбка "A generic error occurred in GDI+" при прео 
:(
    Опции темы
virtualRem777
Дата 11.2.2008, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 27.9.2007

Репутация: нет
Всего: нет



Ошыбка "A generic error occurred in GDI+" при преобразовании картинки в byte[]
PM MAIL   Вверх
Alekz
Дата 12.2.2008, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 5.2.2008
Где: Запорожье, Украин а

Репутация: 1
Всего: 2



А подробнее?
Хотябы опиши, что ты пытаешься сделать.
PM MAIL   Вверх
virtualRem777
Дата 12.2.2008, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 27.9.2007

Репутация: нет
Всего: нет



формат изображения jpg

private static byte[] ConvertImageToByteArray(Image im)
        {
            byte[] Ret;

            try
            {

                using (MemoryStream ms = new MemoryStream())
                {
                    imageToConvert.Save(ms, formatOfImage);
                    Ret = ms.ToArray();//строка в которой появляється ошыбка
                }
            }
            catch (Exception) { throw; }

            return Ret;            
        }
PM MAIL   Вверх
Alekz
Дата 12.2.2008, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 5.2.2008
Где: Запорожье, Украин а

Репутация: 1
Всего: 2



А откуда ты берешь объект Image?

Глянь сюда, может помочь:
http://support.microsoft.com/?id=814675

PM MAIL   Вверх
virtualRem777
Дата 13.2.2008, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 27.9.2007

Репутация: нет
Всего: нет



Обьект Image беру из ячейки datagridview
PM MAIL   Вверх
Alekz
Дата 14.2.2008, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 5.2.2008
Где: Запорожье, Украин а

Репутация: 1
Всего: 2



Я понимаю (http://forum.vingrad.ru/forum/topic-194873.html)   smile

Но я имел в виду, каким образом создаются объекты Image. Если из файла (или другого потока), то очень вероятно что дело в этом:

Цитата

if the stream was destroyed during the life of the Bitmap object, you cannot successfully access an image that was based on a stream
...
GDI+, and therefore the System.Drawing namespace, may defer the decoding of raw image bits until the bits are required by the image. Additionally, even after the image has been decoded, GDI+ may determine that it is more efficient to discard the memory for a large Bitmap and to re-decode later. Therefore, GDI+ must have access to the source bits for the image for the life of the Bitmap or the Image object.


т.е. поток, из которого создан Image , должен существовать.

там же, чуть дальше рекомендуемое решение:
Цитата

1.    Construct the original Bitmap from the stream, from the memory, or from the file.
2.    Create a new Bitmap of the same size, with a pixel format of more than 8 bits-per-pixel (BPP).
3.    Use the Graphics.FromImage() method to obtain a Graphics object for the second Bitmap.
4.    Use Graphics.DrawImage() to draw the first Bitmap onto the second Bitmap.
5.    Use Graphics.Dispose() to dispose of the Graphics.
6.    Use Bitmap.Dispose() to dispose of the first Bitmap.



Код

Bitmap b1 = Bitmap.FromStream(stream);
Bitmap b2 = new Bitmap(b1.Width, b1.Height);
Graphics g = Graphics.FromImage(b2);
g.DrawImage(b1);
g.Dispose();
b1.Dispose();
stream.Close();


теперь можно работать с  b2.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0560 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.