Created
April 16, 2020 04:39
-
-
Save cesarmiquel/1780ab6078b9735371d1f10a9d60d233 to your computer and use it in GitHub Desktop.
VGA 256 Color Palette to RGB
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$im = imagecreatefrompng("vga-palette.png"); | |
$sx = (int) 800 / 16; | |
$sy = (int) 800 / 16; | |
$ox = (int) ($sx / 2); | |
$oy = (int) ($sx / 2); | |
for($y = 0; $y < 16; $y++) { | |
for($x = 0; $x < 16; $x++) { | |
$rgb = imagecolorat($im, $sx*$x + $ox, $sy*$y + $oy); | |
$r = ($rgb >> 16) & 0xFF; | |
$g = ($rgb >> 8) & 0xFF; | |
$b = $rgb & 0xFF; | |
$color = sprintf("%02x%02x%02x", $r, $g, $b); | |
printf("%d,%d,%d,%02x,%02x,%02x,%s\n", $r, $g, $b, $r, $g, $b, $color); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
0 | 0 | 0 | 00 | 00 | 00 | 000000 | |
---|---|---|---|---|---|---|---|
0 | 2 | 170 | 00 | 02 | aa | 0002aa | |
20 | 170 | 0 | 14 | aa | 00 | 14aa00 | |
0 | 170 | 170 | 00 | aa | aa | 00aaaa | |
170 | 0 | 3 | aa | 00 | 03 | aa0003 | |
170 | 0 | 170 | aa | 00 | aa | aa00aa | |
170 | 85 | 0 | aa | 55 | 00 | aa5500 | |
170 | 170 | 170 | aa | aa | aa | aaaaaa | |
85 | 85 | 85 | 55 | 55 | 55 | 555555 | |
85 | 85 | 255 | 55 | 55 | ff | 5555ff | |
85 | 255 | 85 | 55 | ff | 55 | 55ff55 | |
85 | 255 | 255 | 55 | ff | ff | 55ffff | |
255 | 85 | 85 | ff | 55 | 55 | ff5555 | |
253 | 85 | 255 | fd | 55 | ff | fd55ff | |
255 | 255 | 85 | ff | ff | 55 | ffff55 | |
255 | 255 | 255 | ff | ff | ff | ffffff | |
0 | 0 | 0 | 00 | 00 | 00 | 000000 | |
16 | 16 | 16 | 10 | 10 | 10 | 101010 | |
32 | 32 | 32 | 20 | 20 | 20 | 202020 | |
53 | 53 | 53 | 35 | 35 | 35 | 353535 | |
69 | 69 | 69 | 45 | 45 | 45 | 454545 | |
85 | 85 | 85 | 55 | 55 | 55 | 555555 | |
101 | 101 | 101 | 65 | 65 | 65 | 656565 | |
117 | 117 | 117 | 75 | 75 | 75 | 757575 | |
138 | 138 | 138 | 8a | 8a | 8a | 8a8a8a | |
154 | 154 | 154 | 9a | 9a | 9a | 9a9a9a | |
170 | 170 | 170 | aa | aa | aa | aaaaaa | |
186 | 186 | 186 | ba | ba | ba | bababa | |
202 | 202 | 202 | ca | ca | ca | cacaca | |
223 | 223 | 223 | df | df | df | dfdfdf | |
239 | 239 | 239 | ef | ef | ef | efefef | |
255 | 255 | 255 | ff | ff | ff | ffffff | |
0 | 4 | 255 | 00 | 04 | ff | 0004ff | |
65 | 4 | 255 | 41 | 04 | ff | 4104ff | |
130 | 3 | 255 | 82 | 03 | ff | 8203ff | |
190 | 2 | 255 | be | 02 | ff | be02ff | |
253 | 0 | 255 | fd | 00 | ff | fd00ff | |
254 | 0 | 190 | fe | 00 | be | fe00be | |
255 | 0 | 130 | ff | 00 | 82 | ff0082 | |
255 | 0 | 65 | ff | 00 | 41 | ff0041 | |
255 | 0 | 8 | ff | 00 | 08 | ff0008 | |
255 | 65 | 5 | ff | 41 | 05 | ff4105 | |
255 | 130 | 0 | ff | 82 | 00 | ff8200 | |
255 | 190 | 0 | ff | be | 00 | ffbe00 | |
255 | 255 | 0 | ff | ff | 00 | ffff00 | |
190 | 255 | 0 | be | ff | 00 | beff00 | |
130 | 255 | 0 | 82 | ff | 00 | 82ff00 | |
65 | 255 | 1 | 41 | ff | 01 | 41ff01 | |
36 | 255 | 0 | 24 | ff | 00 | 24ff00 | |
34 | 255 | 66 | 22 | ff | 42 | 22ff42 | |
29 | 255 | 130 | 1d | ff | 82 | 1dff82 | |
18 | 255 | 190 | 12 | ff | be | 12ffbe | |
0 | 255 | 255 | 00 | ff | ff | 00ffff | |
0 | 190 | 255 | 00 | be | ff | 00beff | |
1 | 130 | 255 | 01 | 82 | ff | 0182ff | |
0 | 65 | 255 | 00 | 41 | ff | 0041ff | |
130 | 130 | 255 | 82 | 82 | ff | 8282ff | |
158 | 130 | 255 | 9e | 82 | ff | 9e82ff | |
190 | 130 | 255 | be | 82 | ff | be82ff | |
223 | 130 | 255 | df | 82 | ff | df82ff | |
253 | 130 | 255 | fd | 82 | ff | fd82ff | |
254 | 130 | 223 | fe | 82 | df | fe82df | |
255 | 130 | 190 | ff | 82 | be | ff82be | |
255 | 130 | 158 | ff | 82 | 9e | ff829e | |
255 | 130 | 130 | ff | 82 | 82 | ff8282 | |
255 | 158 | 130 | ff | 9e | 82 | ff9e82 | |
255 | 190 | 130 | ff | be | 82 | ffbe82 | |
255 | 223 | 130 | ff | df | 82 | ffdf82 | |
255 | 255 | 130 | ff | ff | 82 | ffff82 | |
223 | 255 | 130 | df | ff | 82 | dfff82 | |
190 | 255 | 130 | be | ff | 82 | beff82 | |
158 | 255 | 130 | 9e | ff | 82 | 9eff82 | |
130 | 255 | 130 | 82 | ff | 82 | 82ff82 | |
130 | 255 | 158 | 82 | ff | 9e | 82ff9e | |
130 | 255 | 190 | 82 | ff | be | 82ffbe | |
130 | 255 | 223 | 82 | ff | df | 82ffdf | |
130 | 255 | 255 | 82 | ff | ff | 82ffff | |
130 | 223 | 255 | 82 | df | ff | 82dfff | |
130 | 190 | 255 | 82 | be | ff | 82beff | |
130 | 158 | 255 | 82 | 9e | ff | 829eff | |
186 | 186 | 255 | ba | ba | ff | babaff | |
202 | 186 | 255 | ca | ba | ff | cabaff | |
223 | 186 | 255 | df | ba | ff | dfbaff | |
239 | 186 | 255 | ef | ba | ff | efbaff | |
254 | 186 | 255 | fe | ba | ff | febaff | |
254 | 186 | 239 | fe | ba | ef | febaef | |
255 | 186 | 223 | ff | ba | df | ffbadf | |
255 | 186 | 202 | ff | ba | ca | ffbaca | |
255 | 186 | 186 | ff | ba | ba | ffbaba | |
255 | 202 | 186 | ff | ca | ba | ffcaba | |
255 | 223 | 186 | ff | df | ba | ffdfba | |
255 | 239 | 186 | ff | ef | ba | ffefba | |
255 | 255 | 186 | ff | ff | ba | ffffba | |
239 | 255 | 186 | ef | ff | ba | efffba | |
223 | 255 | 186 | df | ff | ba | dfffba | |
202 | 255 | 187 | ca | ff | bb | caffbb | |
186 | 255 | 186 | ba | ff | ba | baffba | |
186 | 255 | 202 | ba | ff | ca | baffca | |
186 | 255 | 223 | ba | ff | df | baffdf | |
186 | 255 | 239 | ba | ff | ef | baffef | |
186 | 255 | 255 | ba | ff | ff | baffff | |
186 | 239 | 255 | ba | ef | ff | baefff | |
186 | 223 | 255 | ba | df | ff | badfff | |
186 | 202 | 255 | ba | ca | ff | bacaff | |
1 | 1 | 113 | 01 | 01 | 71 | 010171 | |
28 | 1 | 113 | 1c | 01 | 71 | 1c0171 | |
57 | 1 | 113 | 39 | 01 | 71 | 390171 | |
85 | 0 | 113 | 55 | 00 | 71 | 550071 | |
113 | 0 | 113 | 71 | 00 | 71 | 710071 | |
113 | 0 | 85 | 71 | 00 | 55 | 710055 | |
113 | 0 | 57 | 71 | 00 | 39 | 710039 | |
113 | 0 | 28 | 71 | 00 | 1c | 71001c | |
113 | 0 | 1 | 71 | 00 | 01 | 710001 | |
113 | 28 | 1 | 71 | 1c | 01 | 711c01 | |
113 | 57 | 0 | 71 | 39 | 00 | 713900 | |
113 | 85 | 0 | 71 | 55 | 00 | 715500 | |
113 | 113 | 0 | 71 | 71 | 00 | 717100 | |
85 | 113 | 0 | 55 | 71 | 00 | 557100 | |
57 | 113 | 0 | 39 | 71 | 00 | 397100 | |
28 | 113 | 0 | 1c | 71 | 00 | 1c7100 | |
9 | 113 | 0 | 09 | 71 | 00 | 097100 | |
9 | 113 | 28 | 09 | 71 | 1c | 09711c | |
6 | 113 | 57 | 06 | 71 | 39 | 067139 | |
3 | 113 | 85 | 03 | 71 | 55 | 037155 | |
0 | 113 | 113 | 00 | 71 | 71 | 007171 | |
0 | 85 | 113 | 00 | 55 | 71 | 005571 | |
0 | 57 | 113 | 00 | 39 | 71 | 003971 | |
0 | 28 | 113 | 00 | 1c | 71 | 001c71 | |
57 | 57 | 113 | 39 | 39 | 71 | 393971 | |
69 | 57 | 113 | 45 | 39 | 71 | 453971 | |
85 | 57 | 113 | 55 | 39 | 71 | 553971 | |
97 | 57 | 113 | 61 | 39 | 71 | 613971 | |
113 | 57 | 113 | 71 | 39 | 71 | 713971 | |
113 | 57 | 97 | 71 | 39 | 61 | 713961 | |
113 | 57 | 85 | 71 | 39 | 55 | 713955 | |
113 | 57 | 69 | 71 | 39 | 45 | 713945 | |
113 | 57 | 57 | 71 | 39 | 39 | 713939 | |
113 | 69 | 57 | 71 | 45 | 39 | 714539 | |
113 | 85 | 57 | 71 | 55 | 39 | 715539 | |
113 | 97 | 57 | 71 | 61 | 39 | 716139 | |
113 | 113 | 57 | 71 | 71 | 39 | 717139 | |
97 | 113 | 57 | 61 | 71 | 39 | 617139 | |
85 | 113 | 57 | 55 | 71 | 39 | 557139 | |
69 | 113 | 58 | 45 | 71 | 3a | 45713a | |
57 | 113 | 57 | 39 | 71 | 39 | 397139 | |
57 | 113 | 69 | 39 | 71 | 45 | 397145 | |
57 | 113 | 85 | 39 | 71 | 55 | 397155 | |
57 | 113 | 97 | 39 | 71 | 61 | 397161 | |
57 | 113 | 113 | 39 | 71 | 71 | 397171 | |
57 | 97 | 113 | 39 | 61 | 71 | 396171 | |
57 | 85 | 113 | 39 | 55 | 71 | 395571 | |
57 | 69 | 114 | 39 | 45 | 72 | 394572 | |
81 | 81 | 113 | 51 | 51 | 71 | 515171 | |
89 | 81 | 113 | 59 | 51 | 71 | 595171 | |
97 | 81 | 113 | 61 | 51 | 71 | 615171 | |
105 | 81 | 113 | 69 | 51 | 71 | 695171 | |
113 | 81 | 113 | 71 | 51 | 71 | 715171 | |
113 | 81 | 105 | 71 | 51 | 69 | 715169 | |
113 | 81 | 97 | 71 | 51 | 61 | 715161 | |
113 | 81 | 89 | 71 | 51 | 59 | 715159 | |
113 | 81 | 81 | 71 | 51 | 51 | 715151 | |
113 | 89 | 81 | 71 | 59 | 51 | 715951 | |
113 | 97 | 81 | 71 | 61 | 51 | 716151 | |
113 | 105 | 81 | 71 | 69 | 51 | 716951 | |
113 | 113 | 81 | 71 | 71 | 51 | 717151 | |
105 | 113 | 81 | 69 | 71 | 51 | 697151 | |
97 | 113 | 81 | 61 | 71 | 51 | 617151 | |
89 | 113 | 81 | 59 | 71 | 51 | 597151 | |
81 | 113 | 81 | 51 | 71 | 51 | 517151 | |
81 | 113 | 90 | 51 | 71 | 5a | 51715a | |
81 | 113 | 97 | 51 | 71 | 61 | 517161 | |
81 | 113 | 105 | 51 | 71 | 69 | 517169 | |
81 | 113 | 113 | 51 | 71 | 71 | 517171 | |
81 | 105 | 113 | 51 | 69 | 71 | 516971 | |
81 | 97 | 113 | 51 | 61 | 71 | 516171 | |
81 | 89 | 113 | 51 | 59 | 71 | 515971 | |
0 | 0 | 66 | 00 | 00 | 42 | 000042 | |
17 | 0 | 65 | 11 | 00 | 41 | 110041 | |
32 | 0 | 65 | 20 | 00 | 41 | 200041 | |
49 | 0 | 65 | 31 | 00 | 41 | 310041 | |
65 | 0 | 65 | 41 | 00 | 41 | 410041 | |
65 | 0 | 50 | 41 | 00 | 32 | 410032 | |
65 | 0 | 32 | 41 | 00 | 20 | 410020 | |
65 | 0 | 16 | 41 | 00 | 10 | 410010 | |
65 | 0 | 0 | 41 | 00 | 00 | 410000 | |
65 | 16 | 0 | 41 | 10 | 00 | 411000 | |
65 | 32 | 0 | 41 | 20 | 00 | 412000 | |
65 | 49 | 0 | 41 | 31 | 00 | 413100 | |
65 | 65 | 0 | 41 | 41 | 00 | 414100 | |
49 | 65 | 0 | 31 | 41 | 00 | 314100 | |
32 | 65 | 0 | 20 | 41 | 00 | 204100 | |
16 | 65 | 0 | 10 | 41 | 00 | 104100 | |
3 | 65 | 0 | 03 | 41 | 00 | 034100 | |
3 | 65 | 16 | 03 | 41 | 10 | 034110 | |
2 | 65 | 32 | 02 | 41 | 20 | 024120 | |
1 | 65 | 49 | 01 | 41 | 31 | 014131 | |
0 | 65 | 65 | 00 | 41 | 41 | 004141 | |
0 | 49 | 65 | 00 | 31 | 41 | 003141 | |
0 | 32 | 65 | 00 | 20 | 41 | 002041 | |
0 | 16 | 65 | 00 | 10 | 41 | 001041 | |
32 | 32 | 65 | 20 | 20 | 41 | 202041 | |
40 | 32 | 65 | 28 | 20 | 41 | 282041 | |
49 | 32 | 65 | 31 | 20 | 41 | 312041 | |
57 | 32 | 65 | 39 | 20 | 41 | 392041 | |
65 | 32 | 65 | 41 | 20 | 41 | 412041 | |
65 | 32 | 57 | 41 | 20 | 39 | 412039 | |
65 | 32 | 49 | 41 | 20 | 31 | 412031 | |
65 | 32 | 40 | 41 | 20 | 28 | 412028 | |
65 | 32 | 32 | 41 | 20 | 20 | 412020 | |
65 | 40 | 32 | 41 | 28 | 20 | 412820 | |
65 | 49 | 32 | 41 | 31 | 20 | 413120 | |
65 | 57 | 33 | 41 | 39 | 21 | 413921 | |
65 | 65 | 32 | 41 | 41 | 20 | 414120 | |
57 | 65 | 32 | 39 | 41 | 20 | 394120 | |
49 | 65 | 32 | 31 | 41 | 20 | 314120 | |
40 | 65 | 32 | 28 | 41 | 20 | 284120 | |
32 | 65 | 32 | 20 | 41 | 20 | 204120 | |
32 | 65 | 40 | 20 | 41 | 28 | 204128 | |
32 | 65 | 49 | 20 | 41 | 31 | 204131 | |
32 | 65 | 57 | 20 | 41 | 39 | 204139 | |
32 | 65 | 65 | 20 | 41 | 41 | 204141 | |
32 | 57 | 65 | 20 | 39 | 41 | 203941 | |
32 | 49 | 65 | 20 | 31 | 41 | 203141 | |
32 | 40 | 65 | 20 | 28 | 41 | 202841 | |
45 | 45 | 65 | 2d | 2d | 41 | 2d2d41 | |
49 | 45 | 65 | 31 | 2d | 41 | 312d41 | |
53 | 45 | 65 | 35 | 2d | 41 | 352d41 | |
61 | 45 | 65 | 3d | 2d | 41 | 3d2d41 | |
65 | 45 | 65 | 41 | 2d | 41 | 412d41 | |
65 | 45 | 61 | 41 | 2d | 3d | 412d3d | |
65 | 45 | 53 | 41 | 2d | 35 | 412d35 | |
65 | 45 | 49 | 41 | 2d | 31 | 412d31 | |
65 | 45 | 45 | 41 | 2d | 2d | 412d2d | |
65 | 49 | 45 | 41 | 31 | 2d | 41312d | |
65 | 53 | 45 | 41 | 35 | 2d | 41352d | |
65 | 61 | 45 | 41 | 3d | 2d | 413d2d | |
65 | 65 | 45 | 41 | 41 | 2d | 41412d | |
61 | 65 | 45 | 3d | 41 | 2d | 3d412d | |
53 | 65 | 45 | 35 | 41 | 2d | 35412d | |
49 | 65 | 45 | 31 | 41 | 2d | 31412d | |
45 | 65 | 45 | 2d | 41 | 2d | 2d412d | |
45 | 65 | 49 | 2d | 41 | 31 | 2d4131 | |
45 | 65 | 53 | 2d | 41 | 35 | 2d4135 | |
45 | 65 | 61 | 2d | 41 | 3d | 2d413d | |
45 | 65 | 65 | 2d | 41 | 41 | 2d4141 | |
45 | 61 | 65 | 2d | 3d | 41 | 2d3d41 | |
45 | 53 | 65 | 2d | 35 | 41 | 2d3541 | |
45 | 49 | 65 | 2d | 31 | 41 | 2d3141 | |
0 | 0 | 0 | 00 | 00 | 00 | 000000 | |
0 | 0 | 0 | 00 | 00 | 00 | 000000 | |
0 | 0 | 0 | 00 | 00 | 00 | 000000 | |
0 | 0 | 0 | 00 | 00 | 00 | 000000 | |
0 | 0 | 0 | 00 | 00 | 00 | 000000 | |
0 | 0 | 0 | 00 | 00 | 00 | 000000 | |
0 | 0 | 0 | 00 | 00 | 00 | 000000 | |
0 | 0 | 0 | 00 | 00 | 00 | 000000 |
Author
cesarmiquel
commented
Apr 16, 2020
I cheated Gist into letting me upload the image. That is the file vga-palette.png
This is neat, and useful. Thanks.
C version here (with B in LSB, R in MSB):
#pragma once
#include <stdint.h>
enum { VGA_PALETTE_LENGTH = 256 };
static const uint32_t vga_palette[VGA_PALETTE_LENGTH] = {
0x000000, 0x0002aa, 0x14aa00, 0x00aaaa, 0xaa0003, 0xaa00aa, 0xaa5500, 0xaaaaaa,
0x555555, 0x5555ff, 0x55ff55, 0x55ffff, 0xff5555, 0xfd55ff, 0xffff55, 0xffffff,
0x000000, 0x101010, 0x202020, 0x353535, 0x454545, 0x555555, 0x656565, 0x757575,
0x8a8a8a, 0x9a9a9a, 0xaaaaaa, 0xbababa, 0xcacaca, 0xdfdfdf, 0xefefef, 0xffffff,
0x0004ff, 0x4104ff, 0x8203ff, 0xbe02ff, 0xfd00ff, 0xfe00be, 0xff0082, 0xff0041,
0xff0008, 0xff4105, 0xff8200, 0xffbe00, 0xffff00, 0xbeff00, 0x82ff00, 0x41ff01,
0x24ff00, 0x22ff42, 0x1dff82, 0x12ffbe, 0x00ffff, 0x00beff, 0x0182ff, 0x0041ff,
0x8282ff, 0x9e82ff, 0xbe82ff, 0xdf82ff, 0xfd82ff, 0xfe82df, 0xff82be, 0xff829e,
0xff8282, 0xff9e82, 0xffbe82, 0xffdf82, 0xffff82, 0xdfff82, 0xbeff82, 0x9eff82,
0x82ff82, 0x82ff9e, 0x82ffbe, 0x82ffdf, 0x82ffff, 0x82dfff, 0x82beff, 0x829eff,
0xbabaff, 0xcabaff, 0xdfbaff, 0xefbaff, 0xfebaff, 0xfebaef, 0xffbadf, 0xffbaca,
0xffbaba, 0xffcaba, 0xffdfba, 0xffefba, 0xffffba, 0xefffba, 0xdfffba, 0xcaffbb,
0xbaffba, 0xbaffca, 0xbaffdf, 0xbaffef, 0xbaffff, 0xbaefff, 0xbadfff, 0xbacaff,
0x010171, 0x1c0171, 0x390171, 0x550071, 0x710071, 0x710055, 0x710039, 0x71001c,
0x710001, 0x711c01, 0x713900, 0x715500, 0x717100, 0x557100, 0x397100, 0x1c7100,
0x097100, 0x09711c, 0x067139, 0x037155, 0x007171, 0x005571, 0x003971, 0x001c71,
0x393971, 0x453971, 0x553971, 0x613971, 0x713971, 0x713961, 0x713955, 0x713945,
0x713939, 0x714539, 0x715539, 0x716139, 0x717139, 0x617139, 0x557139, 0x45713a,
0x397139, 0x397145, 0x397155, 0x397161, 0x397171, 0x396171, 0x395571, 0x394572,
0x515171, 0x595171, 0x615171, 0x695171, 0x715171, 0x715169, 0x715161, 0x715159,
0x715151, 0x715951, 0x716151, 0x716951, 0x717151, 0x697151, 0x617151, 0x597151,
0x517151, 0x51715a, 0x517161, 0x517169, 0x517171, 0x516971, 0x516171, 0x515971,
0x000042, 0x110041, 0x200041, 0x310041, 0x410041, 0x410032, 0x410020, 0x410010,
0x410000, 0x411000, 0x412000, 0x413100, 0x414100, 0x314100, 0x204100, 0x104100,
0x034100, 0x034110, 0x024120, 0x014131, 0x004141, 0x003141, 0x002041, 0x001041,
0x202041, 0x282041, 0x312041, 0x392041, 0x412041, 0x412039, 0x412031, 0x412028,
0x412020, 0x412820, 0x413120, 0x413921, 0x414120, 0x394120, 0x314120, 0x284120,
0x204120, 0x204128, 0x204131, 0x204139, 0x204141, 0x203941, 0x203141, 0x202841,
0x2d2d41, 0x312d41, 0x352d41, 0x3d2d41, 0x412d41, 0x412d3d, 0x412d35, 0x412d31,
0x412d2d, 0x41312d, 0x41352d, 0x413d2d, 0x41412d, 0x3d412d, 0x35412d, 0x31412d,
0x2d412d, 0x2d4131, 0x2d4135, 0x2d413d, 0x2d4141, 0x2d3d41, 0x2d3541, 0x2d3141,
0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
};
Great! Thanks for sharing the C version. Glad it was useful.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment