Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.07;
Скачать: CL | DM;

Вниз

Stream потоки и кодировка BMP,JPG   Найти похожие ветки 

 
Vovanchik   (2006-01-17 12:36) [0]

Совсем запутался!!! Тут такое дело:
Не могу организовать процесс передачи картинки и её получение, то есть картинку потоком я отправить могу но преобразовать из потока не получаеться постоянно система ругаеться. Если кто втречался с этой проблемой и знаеет как передать картинку через поток. Процесс передачи происходит от клиента к серверу - допустим через TCP/IP. Хотелось бы организовать все через (Serversocket &  Clientsocket)
Заранее Огромное Спасибо!!!!!


 
Digitman ©   (2006-01-17 12:44) [1]


> Если кто втречался с этой проблемой


нет никакой проблемы.
Она , эта проблема, ТОБОЙ надумана.


 
Vovanchik   (2006-01-17 13:52) [2]

Ну хотя бы примерчик скиньте!!!


 
Roll_and_Rock   (2006-01-17 18:48) [3]

//Вот пример для CBuilder`а. Не проверял.

//-----http://forum.vingrad.ru -----------------------------------------------
Со стороны, откуда посылаем (у нас это клиент), пишем:

TFileStream* str = new TFileStream("M:\\MyFile.jpg",fmOpenRead);
//ИЛИ, если мы работаем без сохранения (тогда не создается файл)
TMemoryStream* str = new TMemoryStream ();
str->Position = 0;
Image1->Picture->Bitmap->SaveToStream(str);
//и, наконец, шлем на сервер битмап
str->Position = 0;
ClientSocket1->Socket->SendStream(str);

Обратите внимание, не забывайте перед каждой операцией с потоком устанавливать позицию в 0!!! Иначе получим не то, что хотелось бы
Ну а со стороны приема (у нас это, соответственно, серверсокет), в событии приема пишем:

int ibLen = ServerSocket1->Socket->ReceiveLength();
char* buf= new char[ibLen+1];
TMemoryStream* str = new TMemoryStream();
str->Position = 0;
ServerSocket1->Socket->ReceiveBuf((void*)buf,ibLen);
str->WriteBuffer((void*)buf,ibLen);
str->Position = 0;
Image1->Picture->Bitmap->LoadFromStream(str);
//или
str->SaveToFile("M:\\MyFile.jpg");

Ну и ессно, как говорит Bigbrother, сделал дело - вызови деструктор! То есть почистить за собой надо, не знаю как в Паскале, но в сях мне надо удалить str и buf.
//----------------------------------------------------------------------------


 
Ботвин Дмитрий   (2006-01-18 14:43) [4]

>преобразовать из потока не получаеться постоянно система ругаеться

Это потому что ты про Seek даже не вспомнил при восстановлении, а вообще
в таких случаях хорошо помагает SysErrorMessage(GetLastError) - он как раз
об этом и пишет :-))



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

Текущий архив: 2006.05.07;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.028 c
2-1145024429
ян
2006-04-14 18:20
2006.05.07
Здравствуйте,господа!вопрос, как в Delphi называется клавиша Ctrl


15-1144990937
Ega23
2006-04-14 09:02
2006.05.07
С Днём рождения! 14 апреля


2-1145259990
ttt_111
2006-04-17 11:46
2006.05.07
Сортировка


2-1145177284
Mihur
2006-04-16 12:48
2006.05.07
Подскажите Функцию API для определния уникальной Hard инф..


8-1134149328
Dark Lord
2005-12-09 20:28
2006.05.07
Гитарный тюнер на Дельфи