問題タブ [boost-gil]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
9290 参照

c++ - Boost.GILで画像を作成する

私はboost::gilのドキュメントを読もうとしてきましたが、不足しているか、複雑であるかの間のどこかにあります.

暴言はさておき、次のことを行う方法の例が必要です。

たとえば、512x512 の画像を作成します。赤のピクセルで塗りつぶします。PNG に書き込みます。

gil のドキュメントには、それを行うことについて何も見つかりません。特に、画像の作成またはピクセル部分での塗りつぶし。

誰かが助けてくれたら、ありがとう。

0 投票する
2 に答える
624 参照

c++ - ブースト::GILbits8*をreinterpret_castなしでgray8_ptr_tに?

GILの設計ガイドラインに従って作業しようbits__として、チャネルデータ型に使用します。GIL画像ビューにラップしている外部データがあることがよくあります。ただし、bits__データポインターの型を使用している場合でも、画像ビューを作成する前にreinterpret_castを追加する必要があります。次のコードを取ります

6行目でエラーが発生します"エラーC2440:'初期化中':'boost :: gil ::bits8*'から'boost:: gil::gray8_ptr_t'に変換できません1>ポイントされたタイプは無関係です;変換にはreinterpret_castが必要ですCスタイルのキャストまたはファンクションスタイルのキャスト」

私ができる限りソースコードを掘り下げてみると、これらのタイプは実際には無関係のようです。ビット8は単なる。ですunsigned chargray8_ptr_t、へのポインタstruct pixel<bits8,gray_layout_t>です。この構造体の唯一の要素は単一のbits8であるため、reinterpret_castは安全に見えます。それは私がそれに投げたテストのためにもうまく働きます。

ただし、外部データを画像ビューにラップすることがよくあり、すべての場所にreinterpret_castを配置すると問題が発生します。GILで使用するピクセルポインターを作成するより安全な方法はありますか?

現在の回避策:

0 投票する
2 に答える
568 参照

c++ - Boost::GILビュータイプからチャンネルタイプを抽出する方法は?

画像ビューからピクセルまたはチャネル タイプを抽出する正しい方法が見つかりません。gray8_view_t の場合、以下の pod_t を「unsigned char」に定義しようとしています。単純な ViewType::pixel_t はありません。関数 PixelFoo でのこの型の適切な定義は何ですか?

0 投票する
1 に答える
269 参照

c++ - boost :: gilを使用して数値ピクセル演算のオーバーフローを処理する方法は?

boost :: gilの数値拡張子には、次のようなアルゴリズムが含まれています。

2つのuint8チャネル値で埋められた場合、ChannelRもuint8の場合、オーバーフローが発生します。

計算はすべきだと思います

  • 処理に別のタイプを使用します(テンプレート化されたチャネルタイプからこれを導出する方法は?)
  • 結果をChannelRタイプの範囲にクリップして、飽和した結果を取得します(boost::gil::channel_traits<ChannelR>::min_value()/ ... max_value()?を使用)

パフォーマンスを最適化した結果を可能にする方法でこれを行うにはどうすればよいですか?

  • 可能な限り最大のタイプに変換しますか?逆効果に聞こえます...
  • テンプレートの専門分野の武器を提供しますか?より良いアイデアはありますか?
0 投票する
1 に答える
2062 参照

c++ - Boost ::GIL画像をJPEGまたはPNGとしてchar*に保存する方法は?

そのため、ファイルに保存する際のサンプルがいたるところに見られます。しかし、ファイルの代わりにchar *またはstringに保存することは可能かどうか疑問に思います。つまり、メモリに保存することはできますか?

0 投票する
2 に答える
2160 参照

c++ - Reading png images with gil

Is it possible with boost::gil to read the RGB image information so that I can read the file into the correct rgbx_image_t?

With the following I have to know the type beforehand and that is not so neat.

#xA;
0 投票する
1 に答える
903 参照

visual-c++ - lpng パッケージのリンク方法

VC++、boost::gil パッケージ、lpng パッケージを使用して png 画像を読み取ります。デバッグ後、次のリンクの問題があります。

それはどのように由来しますか?問題をリンクするにはいくつかのライブラリが必要ですか?

0 投票する
4 に答える
6106 参照

c++ - Boost.GIL を使用して画像を「生の」バイトに変換する

ゴール

私はBoost GILに移行して、私が実装した同様の機能を置き換えようとしていますが、これは保守可能な寿命の終わりに近づいています。

を使用して 24 BPP、8 ビット RGB 画像で動作する既存のコードがありますuint8_t*。同じインターフェイスを使用してさまざまな場所 (OpenGL バッファーなど) から画像を公開しているため、これを変更することはできません。また、既にかなり多くのコードが存在します。

したがって、ファイルを読み取り、ストレージの管理に使用できる にピクセルをバイト単位でコピーすることから始めて、GIL を小さなステップで使用しようとしていますstd::vector<uint8_t>が、それでも をuint8_t*使用して を取得し&vector[0]ます。

これは、リファクタリングが理にかなっているポイントになるまで、既存のインターフェイスの背後に透過的にドロップできます。

私が試したこと

copy_pixels()これは、適切に構築された 2 つのビューを使用する単純なケースであると考えました。

ドキュメントを調べて試してみることで達成できたことの合計を示す、最小限の完全な例をまとめました。

私が立ち往生している場所

これはコンパイルされません:

これは一目瞭然です。RGB ピクセルは、unsigned char自動的に単一のピクセルに変換することはできません。を使用してこれを修正しようと思いましたが、これらの変換でcopy_and_convert_pixels()3:1 (つまり、ソース イメージの各ピクセルの出力に 3 つの s がある) の問題を回避する方法がわかりません。unsigned char変換は、色空間の変換 (例: RGB->HSV) またはパッキングの変更を目的としているようです。

0 投票する
1 に答える
467 参照

visual-c++ - libpngを使用してpng画像を読み取るにはどうすればよいですか?

メインプログラムでは、png 画像を読みたいと思っています。デバッグは問題ありません。しかし、実行可能ファイルを実行すると、クラッシュしました。どういう理由ですか?ありがとうございました!

0 投票する
1 に答える
2287 参照

c++ - gil boost : rgb8_image_t を rgba8_image_t に変換します

GIL 構文について少し混乱しています。変換したい

アルファチャンネルを1に設定します。組み込み関数はありますか。そうでない場合、これを手動で行う方法は?