2010-09-22 38 views
2

我目前正試圖弄清楚如何使用Boost中包含的通用圖像庫。現在,我只想使用庫來存儲像素數據,並使用Image IO來編寫PNG。但是,我很難理解如何設置對象。Boost GIL圖像構造函數

的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發現的教程似乎只包含書寫過濾器和通用算法,因此它們提供的每個功能示例都有一個源圖像視圖,從中可以獲取維度。

我該怎麼做呢?還是有什麼我完全錯過了?

在此先感謝

編輯:我不知道是否有人問津,或閱讀過這一點,但爲了記錄在案,我只是用升壓交錯圖像函數來創建一個PNG。這不完全相同的解決方案,但它適用於我的應用程序。

+0

未來的讀者,也請參見[這個問題](http://stackoverflow.com/questions/5889235/boost-gil-create-image/5889550) – Arthur 2013-08-31 19:05:43

回答

4

它聽起來就像你在此期間解決你的問題,但僅僅是爲了記錄...這裏有一些指向有關您的問題的信息:

  1. 首先你可能已經錯過了第二個構造升壓::吉爾::圖像,它提供了對水平和垂直方向明確的訪問,而無需在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定義的點2類模板。

  3. 一般而言,您應該檢查Boost GIL的complete documentation,以瞭解教程中未提及的所有問題。爲了更深入地瞭解庫,絕對有必要熟悉設計指南和Doxygen文檔。