RGBA の動作メカニズムは既に学習したので、さまざまな色に属する 16 進数を単純な整数に変換できることに気付きました。これは、一部の色が非常に大きい場合でも、色を整数で格納できることを意味します。
私の質問は、プログラムに与える整数に属する色を取得するにはどうすればよいですか?
編集:もちろん、私もアレグロを使用しているが、私はその中に新しいことを言及するのを忘れていました...それができることは何でもありますか?
色を整数として保存している場合、Allegro 4 を使用しているように聞こえます。さまざまな機能をご利用いただけます。マニュアルをご覧ください。
// int makecol(int r, int g, int b);
int white = makecol(255, 255, 255);
int green = makecol(0, 255, 0);
またはその逆:
int r = getr(color);
int g = getg(color);
int b = getb(color);
Allegro 4 では、順序はグラフィック カードによって異なります。makecol()
そのため、格納されているのが RGB か BGR かによって、同じ色の戻り値が異なる場合があります。したがって、上記の関数を使用して適切な色の値を取得する必要があり、グラフィック モードを設定した後でのみ行う必要があります。
Allegro 5 (Allegro 4 よりも強くお勧めします) を使用している場合は、ALLEGRO_COLOR
構造体を使用します。これにより、基礎となる実装の詳細が隠されるため、上記のいずれも適用されません。