+++ /dev/null
-\r
-#include "core.h"\r
-\r
-uint RGB_Table_08[16] = {\r
- 0x00000000, //黒\r
- 0x00ff0000, //赤\r
- 0x0000ff00, //緑\r
- 0x00ffff00, //黄\r
- 0x000000ff, //青\r
- 0x0000ffff, //水\r
- 0x00ffffff, //白\r
- 0x00c6c6c6, //明るい灰色\r
- 0x00840000, //暗い赤\r
- 0x00008400, //暗い緑\r
- 0x00848400, //暗い黄\r
- 0x00000084, //暗い青\r
- 0x00840084, //紫\r
- 0x00008484, //暗い水\r
- 0x00848484 //暗い灰色\r
-};\r
-\r
-ushort RGB_08_To_16(uchar c8)\r
-{\r
- RGB32 c32;\r
-\r
- if(c8 < 16){\r
- c32.c32 = RGB_Table_08[c8];\r
- return ((c32.bit.r / 7) << 11) | ((c32.bit.g / 7) << (5 + 1) | (c32.bit.b / 7));\r
- }\r
-\r
- if(c8 >= 16 + 216){\r
- return 0x0000;\r
- }\r
-\r
- c8 -= 16;\r
-\r
- c32.bit.b = c8 / 36;\r
- c8 -= c32.bit.b * 36;\r
- c32.bit.g = c8 / 6;\r
- c8 -= c32.bit.g * 6;\r
- c32.bit.r = c8;\r
- c32.bit.a = 0x00;\r
-\r
- return ((c32.bit.r * 6) << 11) | ((c32.bit.g * 6) << (5 + 1) | (c32.bit.b * 6));\r
-}\r
-\r
-uint RGB_08_To_32(uchar c8)\r
-{\r
- RGB32 c32;\r
-\r
- if(c8 < 16){\r
- return RGB_Table_08[c8];\r
- }\r
-\r
- if(c8 >= 16 + 216){\r
- return 0x00000000;\r
- }\r
-\r
- c8 -= 16;\r
-\r
- c32.bit.b = c8 / 36;\r
- c8 -= c32.bit.b * 36;\r
- c32.bit.g = c8 / 6;\r
- c8 -= c32.bit.g * 6;\r
- c32.bit.r = c8;\r
- c32.bit.a = 0x00;\r
-\r
- c32.bit.r *= 51;\r
- c32.bit.g *= 51;\r
- c32.bit.b *= 51;\r
-\r
- return c32.c32;\r
-}\r
-\r
-uchar RGB_16_To_08(ushort c16)\r
-{\r
- uchar c[3];\r
-\r
- c[0] = c16 >> (5 + 6);\r
- c[1] = (c16 & 0x7e0) >> 5;\r
- c[2] = c16 & 0x1f;\r
-\r
- c[0] /= 6;\r
- c[1] /= 12;\r
- c[2] /= 6;\r
-\r
- return 16 + c[0] + c[1] * 6 + c[2] * 36;\r
-}\r
-\r
-uint RGB_16_To_32(ushort c16)\r
-{\r
- uchar c[3];\r
-\r
- c[0] = c16 >> (5 + 6);\r
- c[1] = (c16 & 0x7e0) >> 5;\r
- c[2] = c16 & 0x1f;\r
-\r
- return (c[0] << (16 + 3)) | (c[1] << (8 + 2)) | (c[2] << 3);\r
-}\r
-\r
-uchar RGB_32_To_08(uint c32)\r
-{\r
- uchar c8;\r
- uchar c[4];\r
-\r
- c[3] = (c32 << 24) >> 24;\r
- c[2] = (c32 << 16) >> 24;\r
- c[1] = (c32 << 8) >> 24;\r
-\r
- c[1] = c[1] / 51;\r
- c[2] = c[2] / 51;\r
- c[3] = c[3] / 51;\r
-\r
- c8 = (c[1] + c[2] * 6 + c[3] * 36) + 16;\r
-\r
- return c8;\r
-}\r
-\r
-uchar RGB_32_To_08_xy(uint c32, int x, int y)\r
-{\r
- static int table[4] = { 3, 1, 0, 2 };\r
- uchar c8;\r
- uchar c[4];\r
- int i;\r
-\r
- c[3] = (c32 << 24) >> 24;\r
- c[2] = (c32 << 16) >> 24;\r
- c[1] = (c32 << 8) >> 24;\r
-\r
- x &= 1; /* 偶数か奇数か */\r
- y &= 1;\r
-\r
- i = table[x + y * 2]; /* 中間色を作るための定数 */\r
- c[1] = (c[1] * 21) / 256; /* これで 0~20 になる */\r
- c[2] = (c[2] * 21) / 256;\r
- c[3] = (c[3] * 21) / 256;\r
- c[1] = (c[1] + i) / 4; /* これで 0~5 になる */\r
- c[2] = (c[2] + i) / 4;\r
- c[3] = (c[3] + i) / 4;\r
-\r
- c8 = 16 + c[1] + c[2] * 6 + c[3] * 36;\r
-\r
- return c8;\r
-}\r
-\r
-ushort RGB_32_To_16(uint c32)\r
-{\r
- ushort c16;\r
- uchar c[4];\r
-\r
- c[3] = (c32 << 24) >> 24;\r
- c[2] = (c32 << 16) >> 24;\r
- c[1] = (c32 << 8) >> 24;\r
-\r
- c16 = ((c[1] >> 3) << 11 | (c[2] >> 2) << 5 | (c[3] >> 3));\r
- \r
- return c16;\r
-}\r
-\r