2

私は現在、Boostに含まれているGenericImageLibraryの使用方法を理解しようとしています。今のところ、ライブラリを使用してピクセルデータを保存し、ImageIOを使用して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で見つかったチュートリアルには、書き込みフィルターと一般的なアルゴリズムのみが含まれているようです。したがって、GILが提供する各関数の例には、ディメンションを取得するソースイメージビューがあります。

私はこれを間違った方法で行っていますか?それとも私が完全に見逃したものはありますか?

前もって感謝します

編集:誰かが気にかけているか、これを読んだかどうかはわかりませんが、記録のために、ブーストインターリーブ画像機能を使用してPNGを作成しました。これはまったく同じソリューションではありませんが、私のアプリケーションでは機能します。

4

1 に答える 1

4

それまでの間、問題は解決されたようですが、記録として…問題に関する情報へのポインタをいくつか示します。

  1. まず最初に、point_t を必要とせずに水平方向と垂直方向の寸法への明示的なアクセスを提供する、boost::gil::image の 2 番目のコンストラクターを見落としている可能性があります。

    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 は、 で定義された point2 クラス テンプレートを参照する可能性が最も高いでしょうboost/gil/utilities.hpp

  3. 一般に、チュートリアルに記載されていないすべての質問については、Boost GILの完全なドキュメントを確認する必要があります。ライブラリをより深く理解するには、設計ガイドと Doxygen ドキュメントに精通することが絶対に必要です。

于 2011-01-31T09:03:41.257 に答える