>>834
ありがとうございます。

/* ベクトル値を各要素に分解 */
void get_rgba_from_color(
COLOR_t color,
int *r, int *g, int *b, int *a
)
{
*a = (color >> ((3 - DST_CHANNEL_A) << 3)) & 0xFF;
*b = (color >> ((3 - DST_CHANNEL_B) << 3)) & 0xFF;
*g = (color >> ((3 - DST_CHANNEL_G) << 3)) & 0xFF;
*r = (color >> ((3 - DST_CHANNEL_R) << 3)) & 0xFF;
}

の部分なんですが、なぜ私のソースをいじったのでしょうか?
この部分は私が595さんのを変えた部分で
595さんのままですとコードブックで一致しないベクトルを選ぶときに
それぞれのベクトルになっていませんでした。bが一致したものを
順に選んでいくことになっていました。