我目前正试图弄清楚如何使用Boost中包含的通用图像库。现在,我只想使用库来存储像素数据并使用Image IO来编写PNG。我无法理解如何设置对象。
hpp说
image(const point_t& dimensions,
std::size_t alignment=1) : _memory(0), _align(alignment) {
allocate_and_default_construct(dimensions);
}
但除了view_t :: point_t到point_t的type_def之外,我找不到任何对point_t的引用。
此外,使用GIL发现的教程似乎只包括编写过滤器和通用算法,因此它们提供的每个函数示例都有一个源图像视图,从中获取尺寸。
我是以错误的方式来做这件事的吗?还是有什么我完全错过的?
提前致谢
编辑:我不知道是否有人关心,或者已经读过这个,但是为了记录,我只是使用了boost interleaved image功能来创建一个PNG。它不是完全相同的解决方案,但它适用于我的应用程序。
答案 0 :(得分:4)
听起来你在此期间解决了你的问题,但仅仅是为了记录......这里有一些关于你的问题的信息指示:
首先,您可能错过了boost :: gil :: image的第二个构造函数,它提供了对水平和垂直维度的显式访问,而无需point_t:
image(x_coord_t width, y_coord_t height,
std::size_t alignment=0,
const Alloc alloc_in = Alloc()) : _memory(0), _align_in_bytes(alignment), _alloc(alloc_in) {
allocate_and_default_construct(point_t(width,height));
}
point_t很可能会引用boost/gil/utilities.hpp
中定义的point2类模板。
一般情况下,您应该查看Boost GIL的complete documentation,了解本教程中未提及的所有问题。为了更深入地了解库,必须熟悉设计指南和Doxygen文档。