>>835

>>814のソースだと、シフトさせる幅を直に数値で書いてるため、
バイトオーダーを変更したときにRGBαが正しく抽出されなくなる。

>>595のソースだとバグがあって
  RRRRGGGGBBBBAAAA  からRを抽出しようとしたとき、
  1111000000000000  のマスク(AND演算)をかけてるため、
結果は0xR000になってしまう。

>>835の処理だと
  RRRRGGGGBBBBAAAA  を右にビットシフトさせて
  000000000000RRRR  にしてから
  0000000000001111  のマスクをかけるようにしてるので
結果は0x000Rとなる

あと、>>835のソースはバイトオーダーいじってるので、
テストするときは自分の環境に戻してやってくれ。