Главная страница
    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.45 MB
Время: 0.01 c
15-1144846025
Курдль
2006-04-12 16:47
2006.05.07
Америка глазами программиста


15-1144912673
Zhekson
2006-04-13 11:17
2006.05.07
Установка MS SQL


6-1137414584
Dark Lord
2006-01-16 15:29
2006.05.07
Как в WebBrowser заменить контекстное меню своим собственным


15-1145263486
Мефисто
2006-04-17 12:44
2006.05.07
Драйвера на сканер HP 2300С


2-1145359027
sksyat
2006-04-18 15:17
2006.05.07
IdSMTP





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский