問題タブ [pixelformat]

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 に答える
2378 参照

c++ - ピクセル形式を設定し、SDL でサーフェスからテクスチャを作成します

現在、ピクセル操作を使用していくつかのことを試みており、SDL_Surface のピクセル形式を設定したいと考えています。ここでの問題は、SDL_image.h で画像を読み込んでいることです。したがって、次のようなサーフェスからテクスチャを作成する必要があります。

したがって、次の関数を使用できません。使用したい、または使用できますか?:

問題は、ピクセルをいじれるように SDL_PixelFormat を設定したいということです。これを行い、サーフェスに基づいてテクスチャを作成するにはどうすればよいですか?

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

c++ - Open GL - ABGR のピクセル値と RGBA での使用方法

DevIL を使用して画像をロードし、OpenGL がピクセルからテクスチャを作成するテクスチャをロードするためのコードがいくつかあります。このコードは正常に機能し、テクスチャが適切に表示され、それで問題ありません。

それに加えて、プログラム内から配列を作成して、テクスチャを作成したり、テクスチャのピクセルを直接変更したりすることもできます。私の問題はここにあります.ピクセルを処理するとき、私が望んでいたように、ピクセルのフォーマットはRGBAではなくABGRのようです。

glTexImage2D 関数で渡される形式を参照するこのSO の質問に出くわしました。

(...) GL_RGBA と GL_UNSIGNED_INT_8_8_8_8 がある場合、これは、ピクセルが 32 ビット整数で格納され、色がそのような整数で RGBA の論理順序にある​​ことを意味します。たとえば、赤は上位バイトにあり、 alpha は下位バイトです。しかし、マシンが (Intel CPU のように) リトルエンディアンの場合、メモリ内の実際の順序は ABGR になります。一方、GL_UNSIGNED_BYTE を指定した GL_RGBA は、コンピューターがリトル エンディアンかビッグ エンディアンかに関係なく、バイトを RGBA 順に格納します。(...)

確かに私はIntelのCPUを持っています。画像は今のところ問題なくロードされており、実際には GL_RGBA モードと GL_UNSIGNED_BYTE タイプを使用しています。

この関数は、テクスチャを読み込む 2 つの方法で使用されます。ファイルから画像を読み込む方法と、配列からテクスチャを作成する方法です。

ピクセルの配列を作成してテクスチャを作成したいとしましょう。

この値でピクセルをパディングすることで、少し暗い赤色が表示されると予想されます。

しかし、代わりに透明な赤が得られます。

生の unsigned int を使用するのではなく、個々のチャネルを処理するのに役立つ構造を作成しました。

unsigned int の配列を Color4C の配列に簡単に置き換えることができ、結果は同じです。チャンネルの順序を逆にすると (赤が最初、アルファが最後)、0xRRGGBBAA を簡単に渡して機能させることができます。

簡単な解決策は、これらの値を ABGR 形式で処理することです。しかし、RGBA 値を扱う方が簡単だとも思います。ハードコーディングされた色の値を使用したい場合は、0xAABBGGRR ではなく 0xRRGGBBAA のように書きたいと思います。

しかし、ABGR フォーマットを使い始めたとしましょう。自分のコードを別のマシンで実行すると、ピクセル/チャネルを直接変更した場所に突然奇妙な色が表示されますか? より良い解決策はありますか?

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

swift - Swiftでint32 pixelFormatに何を入力すればよいですか?

関数 CGDisplayStreamCreateWithDispatchQueue を使用したいと思います。

ドキュメントには、「pixelFormat」に次の可能な値を使用するように指示されています: (パラメーターは Int32 である必要があります)

たとえば「BGRA」と入力すると、Xcode はこれが無効な引数であると通知します。どうする?

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

c# - PixelFormat をシリアル化する

System.Windows.Media.PixelFormatオブジェクトをシリアル化し、逆シリアル化して再作成したいと思います。私がやっていること:

その後

シリアライゼーションではエラーは発生しません。このオブジェクトを逆シリアル化しようとしても、エラーは発生しませんが、返されたオブジェクトは、たとえば、BitsPerPixelフィールド内で適切ではありませんBitsPerPixel = 'pixelFormat.BitsPerPixel' threw an exception of type 'System.NotSupportedException'

@edit この問題の回避策があります。PixelFormatConverter を使用して PixelFormat オブジェクトを文字列に変換し、文字列をシリアル化する必要があります。デシリアライズ時に文字列を取得し、PixelFormatConverter を使用してそれを PixelFormat に変換します。