gpt4 book ai didi

c++ - 将 boost::stream 用于比字符更复杂/结构化的类型?

转载 作者:行者123 更新时间:2023-11-28 07:31:36 26 4
gpt4 key购买 nike

是否可以将 boost::iostreams 用于更复杂/结构化的类型?

我想做的是流式传输图像,但它们应该有一些注释,如宽度、高度、颜色深度......我的第一个想法是使用结构而不是 char 或 wchar

namespace io = boost::iostreams;

struct SingleImageStream{
unsigned int width;
unsigned int height;
unsigned char colordepth;
unsigned char* frame;
};


class SingleImageSource {
public:
typedef struct SingleImageStream char_type;
typedef io::source_tag category;

std::streamsize read(struct SingleImageStream* s, std::streamsize n)
{
char* frame = new char[640*480];
std::fill( frame, frame + sizeof( frame ), 0 );

s->width = 640;
s->height = 480;

std::copy(frame, frame + sizeof(frame), s->frame);

return -1;
}
};


class SingleImageSink {
public:
typedef struct SingleImageStream char_type;
typedef io::sink_tag category;

std::streamsize write(const struct SingleImageStream* s, std::streamsize n)
{
std::cout << "Frame width : " << s->width << " frame height : " << s->height << std::endl;
return n;
}
};

我现在的问题是如何连接源和汇?

谢谢

最佳答案

Boost.Iostreams 似乎不适合这里的工作。

源和汇机制的目标是允许您指定数据序列化到哪里 - 例如,您是要写入文件、内存中的位置还是 i/o端口。

您要指定的是某种数据如何序列化。 Boost 中的正确工具是 Boost.Serialization .

关于c++ - 将 boost::stream 用于比字符更复杂/结构化的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17587674/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com