Передача данных PixelBox с повышением

#sockets #boost #buffer #boost-asio #ogre

#сокеты #повышение #буфер #boost-asio #ogre

Вопрос:

Я получаю изображение из Ogre rendertaget.

Я получаю пиксельный блок изображения :

 Ogre::RenderTarget *rt = _window;
rt->update();

int width = rt->getWidth();
int height = rt->getHeight();

std::cout << "width=" << width << std::endl;
std::cout << "height=" << height << std::endl;

uchar *data = new uchar[width * height * 3];
PixelBox pb(width, height, 1, PF_BYTE_RGB, data);


rt->copyContentsToMemory(pb);
  

После этого я хочу получить pb.data (это Ogre::uchar), записать его в буфер и отправить через сокет с использованием boost. И не вижу, как это сделать.

Спасибо.

Ответ №1:

Посмотрите на клиент http sync для примера. Нужный вам код будет выглядеть следующим образом:

 boost::asio::streambuf request;
std::ostream request_stream(amp;request);
request_stream << pb;
boost::asio::write(socket, request);