2014年7月26日土曜日

android jni bitmapの並び

unsigned int RGB(unsigned char r, unsigned char g, unsigned char b)
{
    return 0xff000000 | (b << 16) + (g << 8) + (r );
}

RGBA_8888はWindowsのビットマップと同様の並びになっている。

unsinged intの 4バイトに収めた時に、右端のバイトからR,G,B,Aの順という意味。

16進数なら0xAABBGGRRという形式ということで、メモリ上に展開されているのはもちろん、インテル方式である。私はリトルエンディアンとビッグエンディアンという言い方が嫌いだ。憶えられないからだ。リトルエンディアンはインテル方式、ビッグエンディアンはモトローラ方式と記憶しているので、どっちがどっちなのか忘れてしまう。インテル方式で良いでしょ。卵を想像して、もともとどちらが上、右とか判らないでしょ。それとも、あの、エッグスタンドには卵の上下があるのでしょうか。誰か教えてください。

今の所、問題は無いけど、モトローラ型のAndroidが出るかもしれませんね。あるのかな?

0 件のコメント:

コメントを投稿