Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2013, 04:20   #1
Paskal1
Пользователь
 
Аватар для Paskal1
 
Регистрация: 22.10.2010
Сообщений: 69
По умолчанию В image из потока

Ребята подскажите плиз сижу за пк почти 3 суток сплю по 4 часа зависаю уже.
Есть поток нужно из этого потока загрузить в Image.
грузить в файл нельзя
Может подскажете (мне его в будущем еще распечатать нужно)
так бы чтоб меньше с ним возится

Хотел так но
Код:
 LoadStream: TMemoryStream;
begin

 LoadStream := TMemoryStream.Create; // выделение памяти под переменную
 idHTTP1.Get(SourceFile, LoadStream); // загрузка в поток данных
 // сохраняю данные из потока на диск
 //LoadStream.SaveToFile('c:/1.png');

 Image1.Picture.Graphic.LoadFromStream(LoadStream);<-здесь не хочет!

 LoadStream.Free; // освобождаем память
Paskal1 вне форума Ответить с цитированием
Старый 14.01.2013, 05:03   #2
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

Там png формат? Какая делфи? В делфи 7, например, не поддрежриваеться по дефолту этот формат. Так что отсюда и проблема.
Delphi_ProGer вне форума Ответить с цитированием
Старый 14.01.2013, 09:11   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
здесь не хочет!
Как именно не хочет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.01.2013, 12:40   #4
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Код:
var
 tmpGraphic: TPngImage;
 LoadStream: TMemoryStream;
begin
 tmpGraphic := TPngImage.Create;
 LoadStream := TMemoryStream.Create;
 idHTTP.Get('http://mozilla.org.ua/img/logo-seamonkey.png', LoadStream);
 LoadStream.Position := 0;
 tmpGraphic.LoadFromStream(LoadStream);
 Image1.Picture.Assign(tmpGraphic);
end;
А для определения формата изображения можно глянуть вот эти ссылки 1 и 2.
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 14.01.2013, 18:24   #5
alex4321
Пользователь
 
Регистрация: 23.07.2012
Сообщений: 77
По умолчанию

Если нестандартный/неподдерживаемый формат и нет возможности использовать дополнительные компоненты - читать поток на предмет :
  • данных о размере изображения
  • данных о цвете
  • данных о конкретных пикселях
и вывести вручную

А вообще - насчёт невозможности использования диска - в связи с чем? Если лучшего метода не найдётся (впрочем, даже описанный мной выше я бы считал лучшим) - можно использовать RAM-диск?
alex4321 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Плавно убрать Image или Image+AlphaBlend ViniPux1112 Мультимедиа в Delphi 1 10.12.2012 23:55
Должно быть 3 потока. А диспетчер задач показывает, что потока создано 2 BEL9ILLI Общие вопросы Delphi 3 06.12.2011 20:26
Как узнать номер потока из самого потока? GaMeSTeR Помощь студентам 0 03.12.2010 09:50
EPNGMissingMultipleIDAT. This PNG Image is invalid because it has missing image parts kardinal94 Общие вопросы Delphi 0 08.10.2010 20:31
Вопрос по Image (скачанная картинка не хочет выводиться в Image) Radnor Мультимедиа в Delphi 2 06.07.2009 02:20