Кто знает, "почему кода я передаю изображение из объекта "Image" от "серверной программы" на "клиентскую" в объект "Image" или на оборот, в ответ приходит не само изображение а чёрный квадрат"?
Вот исходный код:
Код:
//Сегмент программного кода для отправки данных в потоке:
var
MemoryStream: TMemoryStream; //Переменная потока памяти
begin
MemoryStream := TMemoryStream.Create; //Создаём поток
try
MemoryStream.Position := 0; //Число байт от начала и конца потока
Image1.Picture.BitMap.SaveToStream(MemoryStream); //Заносим данные в поток
MemoryStream.Position := 0; //Число байт от начала и конца потока
Socket.SendStreamThenDrop(MemoryStream); //Отправка данных
except
MemoryStream.Free; //Очистка потока
end;
end;
//Сегмент программного кода для принятия данных из потока:
const
MAX_BUF_SIZE = $4095; //Константа буффера
var
Int: Integer; //Переменная интервала
MemoryStream: TMemoryStream; //Переменная потока памяти
Buffer: array [0..MAX_BUF_SIZE] of Char; //Переменная буффера
begin
Int := Socket.ReceiveLength; //Устанавливаем длину потока в байтах
MemoryStream := TMemoryStream.Create; //Создаём поток
try
MemoryStream.Position := 0; //Число байт от начала и конца потока
Socket.ReceiveBuf(Buffer, Int); //Принимаем данные в буффер
MemoryStream.WriteBuffer(Buffer, Int); //Записываем поток в буффер
MemoryStream.Position := 0; //Число байт от начала и конца потока
Image1.Picture.BitMap.LoadFromStream(MemoryStream); //Загружаем полученные данные
except
MemoryStream.Free; //Очистка потока
end;
end;
Помогите пожалуйста не как не могу понять что тут не так, вроде бы всё правильно...
