Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2009.07.26;
Скачать: [xml.tar.bz2];

Вниз

Загрузка png из потока в gdiplus.   Найти похожие ветки 

 
S7r ©   (2007-11-24 18:49) [0]

Здравствуйте,
Собственно возникла следующая проблема: при загрузке png файла из потока в gdiplus вываливается access violation. Код следующий:

   OpenDialog1.Execute;
   MemStream:=TMemoryStream.Create;
   MemStream.LoadFromFile(OpenDialog1.FileName);
   StreamAdapt:=TStreamAdapter.Create(MemStream, soOwned);
   Img:=TGPImage.Create(StreamAdapt);//вот здесь access violation
   //Img:=TGPImage.Create(OpenDialog1.FileName);//так все нормально
   gdiGraphics:=TGPGraphics.Create(Form1.Canvas.Handle);
   gdiGraphics.DrawImage(Img, 0, 0, Form1.Width, Form1.Height);


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


 
Efir   (2007-11-24 20:33) [1]

Сталкивался тоже с такой же проблемой, задавал вопрос сдесь же, но так и не решил.


 
Efir   (2007-11-24 20:36) [2]

И что интересно, если запустить скомпиленный exe, то всё работает нормально.


 
S7r ©   (2007-11-24 23:09) [3]

А вот у меня скомпилированный exe как раз и не работает. Пишет: Access violation at address 78208BAA in module "gdiplus.dll". Read of address 51EC8B91.
Если запустить в режиме отладки то вылетает окно с CPU и если продолжить выполнение, то все нормально нарисует. Причем в CPU он мне как я понял указывает на какой-то break point в ntdll. Такое чувство, что где-то переполнение и возврат идет не туда...


 
antonn ©   (2007-11-24 23:21) [4]

после StreamAdapt:=TStreamAdapter.Create(MemStream, soOwned); попробывать
StreamAdapt.position:=0;


 
S7r ©   (2007-11-24 23:46) [5]

Установка:
StreamAdapt.Stream.Position:=0;
не помогла. Все тоже самое.
С MemStream.Position таже фигня.


 
antonn ©   (2007-11-25 00:33) [6]

а Img:=TGPImage.Create(StreamAdapt); что требует? путь до файла или поток?


 
S7r ©   (2007-11-25 09:56) [7]

Конструктор у TGPImage перегружен.

 constructor TGPImage.Create(filename: WideString; useEmbeddedColorManagement: BOOL = FALSE);

 constructor TGPImage.Create(stream: IStream; useEmbeddedColorManagement: BOOL  = FALSE);



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2009.07.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
2-1243397495
Алексей Иванов
2009-05-27 08:11
2009.07.26
Свойство TTreeView.Parent


15-1243098395
DillerXX
2009-05-23 21:06
2009.07.26
Вопрос пользователям GMail


15-1242766394
Германн
2009-05-20 00:53
2009.07.26
А что нынче происходит с Яндексом? Кто шалит?


2-1243581095
texx
2009-05-29 11:11
2009.07.26
Как создать большой файл


2-1243960373
v1kee
2009-06-02 20:32
2009.07.26
Помогите с динамическим созданием строк





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский