2

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

4

1 回答 1

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.

  3. 一般来说,您应该查看 Boost GIL 的完整文档,了解教程中未提及的所有问题。为了更深入地了解该库,绝对有必要熟悉设计指南和 Doxygen 文档。

于 2011-01-31T09:03:41.257 回答