提升GIL图像构造函数

时间:2010-09-22 04:03:06

标签: c++ boost png boost-gil

我目前正试图弄清楚如何使用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。它不是完全相同的解决方案,但它适用于我的应用程序。

1 个答案:

答案 0 :(得分:4)

听起来你在此期间解决了你的问题,但仅仅是为了记录......这里有一些关于你的问题的信息指示:

  1. 首先,您可能错过了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));
    }
    
  2. point_t很可能会引用boost/gil/utilities.hpp中定义的point2类模板。

  3. 一般情况下,您应该查看Boost GIL的complete documentation,了解本教程中未提及的所有问题。为了更深入地了解库,必须熟悉设计指南和Doxygen文档。