IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> Как передать bitmap или jpeg по сети
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 5

Репутация: -  0  +


??? Как передать картинку по сети ? Пробовал строкой отсылать несколько точек за раз , но это явно медленновато .
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2





Группа: Пользователи
Сообщений: 4

Репутация: -  0  +


Что понимается по пересылкой по сети? Какой компонент используется? Я так понимаю, что-то из FastNet?
Самый лучший способ передачи по TCP/IP есть передача потоков (Socket.SendStream). Если мне не изменяет склероз, то есть еще и SendFile  у того же Socket.
Это общие слова. Сконкретизируй задачу - возможно, ответ будет более подробный.


--------------------
Админ не спит. Он перезагружается.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 5

Репутация: -  0  +


  Задача -
 взять скриншот
 отобразить у себя в Image
 отослать на др. машину
 отобразить там

Компонент - любой но желательно конечно фаст-нетовский tcp/ip
А насчет Stream и File я пробовал но не получается (может есть пример из FAQ у кого ?) записать BMP в поток и прочиать его оттуда . А с файлами - глючит безбожно .
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Adminь
****

Группа: Пользователи
Сообщений: 803
Пол: Мужской
Реальное имя: Евгений

Репутация: -  5  +


У меня есть что те надо...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 5

Репутация: -  0  +


Цитата
У меня есть что те надо...
Не томи ! Ответь !
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Adminь
****

Группа: Пользователи
Сообщений: 803
Пол: Мужской
Реальное имя: Евгений

Репутация: -  5  +


примеры у меня дома... как на работу возьму винт, выложу здесь пример...
а каие картинки надо передавать?
можно например в файл сохранить, а потом файл передать... а вообще если надо без файлов, придётся немного подождать ответа...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





Группа: Пользователи
Сообщений: 4

Репутация: -  0  +


Все не так просто, но и не так сложно.
Приведу тебе реально рабочий код, доработаешь под свои нужды. Не получается потому, что фастнетовские компоненты довольно хитро передают данные, и не так просто их выцарапать из потока. В общем, смотри:

Передача
var 
BitMapStream:TMemoryStream;

begin
BitMapStream          := TMemoryStream.Create;

Что-то-там.Picture.Bitmap.SaveToStream(BitMapStream);
try
  NMStrm.Host:=Edit_IPADDRESS.Text; // Компонент TNMStrm
  NMStrm.PostIt(BitMapStream);
finally
 BitMapStream.Free;
 NMStrm.Disconnect;
end;
end;


Прием:

// Обработчик события OnMSG для TNMStrmServ

procedure TForm1.NMStrmServMSG(Sender: TComponent;
 const sFrom: String; strm: TStream);
var
Bitmap               : TBitmap;
BitMapStream    : TMemoryStream;
begin
  Bitmap:=TBitmap.Create;
  BitMapStream:= TMemoryStream.Create;
  BitMapStream.CopyFrom(strm,strm.Size);
  Bitmap.LoadFromStream(BitMapStream);
  Image_ScrollBox.Picture.Graphic:=Bitmap;
  BitMapStream.Free
end;


Вот и все. Все работает в реальном проекте.
Да, кстати TNMStrmServ.ReportLevel в обжект инспекторе поставь в 2.
Будут вопросы - пиши.

Сообщение отредактировано: volvo -


--------------------
Админ не спит. Он перезагружается.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Adminь
****

Группа: Пользователи
Сообщений: 803
Пол: Мужской
Реальное имя: Евгений

Репутация: -  5  +


Этот пожалуй способ полегче моего будет...
Я через дибы делал...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9





Группа: Пользователи
Сообщений: 5

Репутация: -  0  +


Ой спасибки всем !
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 19.12.2017 5:14
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"