Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.033 c
9-1129114845
Yegorchic
2005-10-12 15:00
2006.05.07
ODE, FreeForm и другие mesh объекты


2-1145247461
vodvorezlaya
2006-04-17 08:17
2006.05.07
HANDLE?


2-1145342719
Женя из Харькова
2006-04-18 10:45
2006.05.07
ПОМОГИТЕ ПОЖАЛУЙСТА!!!


3-1142515998
jeka_t
2006-03-16 16:33
2006.05.07
Можно ли с нескольких полей сделать одно поле?


2-1145541105
Никола
2006-04-20 17:51
2006.05.07
QuickReport




   Наверх