[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: How are CHRP bootinfo icons formatted?



Hello,

On 6/3/23 4:21 AM, Linux User #330250 wrote:
I was experimenting with those CHRP icons a while back but never could
figure out how they work, specifically the color palette was a complete
riddle to me. I searched the internet until finally I gave up...

So, again, thank you! I'm very happy you found the key to the
hexadecimal colors!

I don't think I really did. All I did was guess that the colors are stored in some sort of 3,3,2 8 bit color format since that's what standard CHRP does. My method for converting RGB pixels into 3,3,2 was based on a Stack Overflow answer that I'm not so sure was accurate. The color of the Debian logo is close to (but not quite) what it should look like in this format, and anything with more than just one basic color doesn't look right at all. I made a color palette in GIMP, attached, with all 256 of the colors that are possible to make with my script, and they don't look right at all; basic values like #FFFFFF that definitely show up on the OS picker aren't present in it. I need to figure out what the actual format is and how it can be translated to and from standard RGB color, so I can make icons that look right.

Another thing I can't figure out is the second bitmap. While it's possible to just make it the same as the first one, it definitely must have some function. While the GNU logo doesn't make use of it, the Tux one does, and the OS X logo is definitely doing something interesting:

<OS-BADGE-ICONS>
1010
00000000000000000000000000000000
000000000000000000000000F8000000
000000002B73732B0055735500F80000
00000000F5799DF6004F792B0000F800
0000000000F69D4E004F2B000000F800
000000000000559D2A55F500000000F8
000000000000F69D732B0000000000F8
000000000000004F96F50000000000F8
00000000000000799D4E0000000000F8
0000000000002AF8559D0000000000F8
00000000000079F6F59D4E00000000F8
00000000004E4F00005573000000F800
000000004F9D55F5004F9D4FF500F800
0000F800557A56F50055567A2BF80000
000000F8F8000000000000F8F8000000
0000000000F8F8F8F8F8F80000000000

0000000000F7F7F7F7F7F70000000000
000000F7F7F7F7F7F7F7F7F781000000
0000F7F7F99E9EF9F7809E80F7810000
00F7F7F7F8A4C856F77AA4F9F7F78100
00F7F7F7F756C879F77AF9F7F7F78100
F7F7F7F7F7F780C85580F8F7F7F7F781
F7F7F7F7F7F756C89EF9F7F7F7F7F781
F7F7F7F7F7F7F77AC1F8F7F7F7F7F781
F7F7F7F7F7F7F7A4C879F7F7F7F7F781
F7F7F7F7F7F7558180C8F7F7F7F7F781
F7F7F7F7F7F7A456F8C879F7F7F7F781
00F7F7F7F7797AF7F7809EF7F7F78100
00F7F7F77AC880F8F77AC87AF8F78100
000081F780A5FBF8F780FBA5F9810000
0000008181F7F7F7F7F7F78181000000
00000000008181818181810000000000

0000000000FFFFFFFFFFFF0000000000
000000FFFFFFFFFFFFFFFFFFFF000000
0000FFFFFFFFFFFFFFFFFFFFFFFF0000
00FFFFFFFFFFFFFFFFFFFFFFFFFFFF00
00FFFFFFFFFFFFFFFFFFFFFFFFFFFF00
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
00FFFFFFFFFFFFFFFFFFFFFFFFFFFF00
00FFFFFFFFFFFFFFFFFFFFFFFFFFFF00
0000FFFFFFFFFFFFFFFFFFFFFFFF0000
000000FFFFFFFFFFFFFFFFFFFF000000
0000000000FFFFFFFFFFFF0000000000
</OS-BADGE-ICONS>

Notice how the first bitmap only details the X in the foreground while the second one details both the foreground and the background. This is a complete mystery to me, and I don't understand why there would be unique information in the second bitmap for both the Tux and the OS X logo when changing it doesn't seem to do anything with the Debian or GNU logos.

I wish I could find some Apple documentation somewhere that could help to solve the mysteries of both the color format and the second bitmap.

--
Ben Westover
/* Generated with GIMP Palette Export */
.Untitled { color: rgb(0, 0, 0) }
.Untitled { color: rgb(0, 0, 64) }
.Untitled { color: rgb(0, 0, 128) }
.Untitled { color: rgb(0, 0, 192) }
.Untitled { color: rgb(0, 32, 0) }
.Untitled { color: rgb(0, 32, 64) }
.Untitled { color: rgb(0, 32, 128) }
.Untitled { color: rgb(0, 32, 192) }
.Untitled { color: rgb(0, 64, 0) }
.Untitled { color: rgb(0, 64, 64) }
.Untitled { color: rgb(0, 64, 128) }
.Untitled { color: rgb(0, 64, 192) }
.Untitled { color: rgb(0, 96, 0) }
.Untitled { color: rgb(0, 96, 64) }
.Untitled { color: rgb(0, 96, 128) }
.Untitled { color: rgb(0, 96, 192) }
.Untitled { color: rgb(0, 128, 0) }
.Untitled { color: rgb(0, 128, 64) }
.Untitled { color: rgb(0, 128, 128) }
.Untitled { color: rgb(0, 128, 192) }
.Untitled { color: rgb(0, 160, 0) }
.Untitled { color: rgb(0, 160, 64) }
.Untitled { color: rgb(0, 160, 128) }
.Untitled { color: rgb(0, 160, 192) }
.Untitled { color: rgb(0, 192, 0) }
.Untitled { color: rgb(0, 192, 64) }
.Untitled { color: rgb(0, 192, 128) }
.Untitled { color: rgb(0, 192, 192) }
.Untitled { color: rgb(0, 224, 0) }
.Untitled { color: rgb(0, 224, 64) }
.Untitled { color: rgb(0, 224, 128) }
.Untitled { color: rgb(0, 224, 192) }
.Untitled { color: rgb(32, 0, 0) }
.Untitled { color: rgb(32, 0, 64) }
.Untitled { color: rgb(32, 0, 128) }
.Untitled { color: rgb(32, 0, 192) }
.Untitled { color: rgb(32, 32, 0) }
.Untitled { color: rgb(32, 32, 64) }
.Untitled { color: rgb(32, 32, 128) }
.Untitled { color: rgb(32, 32, 192) }
.Untitled { color: rgb(32, 64, 0) }
.Untitled { color: rgb(32, 64, 64) }
.Untitled { color: rgb(32, 64, 128) }
.Untitled { color: rgb(32, 64, 192) }
.Untitled { color: rgb(32, 96, 0) }
.Untitled { color: rgb(32, 96, 64) }
.Untitled { color: rgb(32, 96, 128) }
.Untitled { color: rgb(32, 96, 192) }
.Untitled { color: rgb(32, 128, 0) }
.Untitled { color: rgb(32, 128, 64) }
.Untitled { color: rgb(32, 128, 128) }
.Untitled { color: rgb(32, 128, 192) }
.Untitled { color: rgb(32, 160, 0) }
.Untitled { color: rgb(32, 160, 64) }
.Untitled { color: rgb(32, 160, 128) }
.Untitled { color: rgb(32, 160, 192) }
.Untitled { color: rgb(32, 192, 0) }
.Untitled { color: rgb(32, 192, 64) }
.Untitled { color: rgb(32, 192, 128) }
.Untitled { color: rgb(32, 192, 192) }
.Untitled { color: rgb(32, 224, 0) }
.Untitled { color: rgb(32, 224, 64) }
.Untitled { color: rgb(32, 224, 128) }
.Untitled { color: rgb(32, 224, 192) }
.Untitled { color: rgb(64, 0, 0) }
.Untitled { color: rgb(64, 0, 64) }
.Untitled { color: rgb(64, 0, 128) }
.Untitled { color: rgb(64, 0, 192) }
.Untitled { color: rgb(64, 32, 0) }
.Untitled { color: rgb(64, 32, 64) }
.Untitled { color: rgb(64, 32, 128) }
.Untitled { color: rgb(64, 32, 192) }
.Untitled { color: rgb(64, 64, 0) }
.Untitled { color: rgb(64, 64, 64) }
.Untitled { color: rgb(64, 64, 128) }
.Untitled { color: rgb(64, 64, 192) }
.Untitled { color: rgb(64, 96, 0) }
.Untitled { color: rgb(64, 96, 64) }
.Untitled { color: rgb(64, 96, 128) }
.Untitled { color: rgb(64, 96, 192) }
.Untitled { color: rgb(64, 128, 0) }
.Untitled { color: rgb(64, 128, 64) }
.Untitled { color: rgb(64, 128, 128) }
.Untitled { color: rgb(64, 128, 192) }
.Untitled { color: rgb(64, 160, 0) }
.Untitled { color: rgb(64, 160, 64) }
.Untitled { color: rgb(64, 160, 128) }
.Untitled { color: rgb(64, 160, 192) }
.Untitled { color: rgb(64, 192, 0) }
.Untitled { color: rgb(64, 192, 64) }
.Untitled { color: rgb(64, 192, 128) }
.Untitled { color: rgb(64, 192, 192) }
.Untitled { color: rgb(64, 224, 0) }
.Untitled { color: rgb(64, 224, 64) }
.Untitled { color: rgb(64, 224, 128) }
.Untitled { color: rgb(64, 224, 192) }
.Untitled { color: rgb(96, 0, 0) }
.Untitled { color: rgb(96, 0, 64) }
.Untitled { color: rgb(96, 0, 128) }
.Untitled { color: rgb(96, 0, 192) }
.Untitled { color: rgb(96, 32, 0) }
.Untitled { color: rgb(96, 32, 64) }
.Untitled { color: rgb(96, 32, 128) }
.Untitled { color: rgb(96, 32, 192) }
.Untitled { color: rgb(96, 64, 0) }
.Untitled { color: rgb(96, 64, 64) }
.Untitled { color: rgb(96, 64, 128) }
.Untitled { color: rgb(96, 64, 192) }
.Untitled { color: rgb(96, 96, 0) }
.Untitled { color: rgb(96, 96, 64) }
.Untitled { color: rgb(96, 96, 128) }
.Untitled { color: rgb(96, 96, 192) }
.Untitled { color: rgb(96, 128, 0) }
.Untitled { color: rgb(96, 128, 64) }
.Untitled { color: rgb(96, 128, 128) }
.Untitled { color: rgb(96, 128, 192) }
.Untitled { color: rgb(96, 160, 0) }
.Untitled { color: rgb(96, 160, 64) }
.Untitled { color: rgb(96, 160, 128) }
.Untitled { color: rgb(96, 160, 192) }
.Untitled { color: rgb(96, 192, 0) }
.Untitled { color: rgb(96, 192, 64) }
.Untitled { color: rgb(96, 192, 128) }
.Untitled { color: rgb(96, 192, 192) }
.Untitled { color: rgb(96, 224, 0) }
.Untitled { color: rgb(96, 224, 64) }
.Untitled { color: rgb(96, 224, 128) }
.Untitled { color: rgb(96, 224, 192) }
.Untitled { color: rgb(128, 0, 0) }
.Untitled { color: rgb(128, 0, 64) }
.Untitled { color: rgb(128, 0, 128) }
.Untitled { color: rgb(128, 0, 192) }
.Untitled { color: rgb(128, 32, 0) }
.Untitled { color: rgb(128, 32, 64) }
.Untitled { color: rgb(128, 32, 128) }
.Untitled { color: rgb(128, 32, 192) }
.Untitled { color: rgb(128, 64, 0) }
.Untitled { color: rgb(128, 64, 64) }
.Untitled { color: rgb(128, 64, 128) }
.Untitled { color: rgb(128, 64, 192) }
.Untitled { color: rgb(128, 96, 0) }
.Untitled { color: rgb(128, 96, 64) }
.Untitled { color: rgb(128, 96, 128) }
.Untitled { color: rgb(128, 96, 192) }
.Untitled { color: rgb(128, 128, 0) }
.Untitled { color: rgb(128, 128, 64) }
.Untitled { color: rgb(128, 128, 128) }
.Untitled { color: rgb(128, 128, 192) }
.Untitled { color: rgb(128, 160, 0) }
.Untitled { color: rgb(128, 160, 64) }
.Untitled { color: rgb(128, 160, 128) }
.Untitled { color: rgb(128, 160, 192) }
.Untitled { color: rgb(128, 192, 0) }
.Untitled { color: rgb(128, 192, 64) }
.Untitled { color: rgb(128, 192, 128) }
.Untitled { color: rgb(128, 192, 192) }
.Untitled { color: rgb(128, 224, 0) }
.Untitled { color: rgb(128, 224, 64) }
.Untitled { color: rgb(128, 224, 128) }
.Untitled { color: rgb(128, 224, 192) }
.Untitled { color: rgb(160, 0, 0) }
.Untitled { color: rgb(160, 0, 64) }
.Untitled { color: rgb(160, 0, 128) }
.Untitled { color: rgb(160, 0, 192) }
.Untitled { color: rgb(160, 32, 0) }
.Untitled { color: rgb(160, 32, 64) }
.Untitled { color: rgb(160, 32, 128) }
.Untitled { color: rgb(160, 32, 192) }
.Untitled { color: rgb(160, 64, 0) }
.Untitled { color: rgb(160, 64, 64) }
.Untitled { color: rgb(160, 64, 128) }
.Untitled { color: rgb(160, 64, 192) }
.Untitled { color: rgb(160, 96, 0) }
.Untitled { color: rgb(160, 96, 64) }
.Untitled { color: rgb(160, 96, 128) }
.Untitled { color: rgb(160, 96, 192) }
.Untitled { color: rgb(160, 128, 0) }
.Untitled { color: rgb(160, 128, 64) }
.Untitled { color: rgb(160, 128, 128) }
.Untitled { color: rgb(160, 128, 192) }
.Untitled { color: rgb(160, 160, 0) }
.Untitled { color: rgb(160, 160, 64) }
.Untitled { color: rgb(160, 160, 128) }
.Untitled { color: rgb(160, 160, 192) }
.Untitled { color: rgb(160, 192, 0) }
.Untitled { color: rgb(160, 192, 64) }
.Untitled { color: rgb(160, 192, 128) }
.Untitled { color: rgb(160, 192, 192) }
.Untitled { color: rgb(160, 224, 0) }
.Untitled { color: rgb(160, 224, 64) }
.Untitled { color: rgb(160, 224, 128) }
.Untitled { color: rgb(160, 224, 192) }
.Untitled { color: rgb(192, 0, 0) }
.Untitled { color: rgb(192, 0, 64) }
.Untitled { color: rgb(192, 0, 128) }
.Untitled { color: rgb(192, 0, 192) }
.Untitled { color: rgb(192, 32, 0) }
.Untitled { color: rgb(192, 32, 64) }
.Untitled { color: rgb(192, 32, 128) }
.Untitled { color: rgb(192, 32, 192) }
.Untitled { color: rgb(192, 64, 0) }
.Untitled { color: rgb(192, 64, 64) }
.Untitled { color: rgb(192, 64, 128) }
.Untitled { color: rgb(192, 64, 192) }
.Untitled { color: rgb(192, 96, 0) }
.Untitled { color: rgb(192, 96, 64) }
.Untitled { color: rgb(192, 96, 128) }
.Untitled { color: rgb(192, 96, 192) }
.Untitled { color: rgb(192, 128, 0) }
.Untitled { color: rgb(192, 128, 64) }
.Untitled { color: rgb(192, 128, 128) }
.Untitled { color: rgb(192, 128, 192) }
.Untitled { color: rgb(192, 160, 0) }
.Untitled { color: rgb(192, 160, 64) }
.Untitled { color: rgb(192, 160, 128) }
.Untitled { color: rgb(192, 160, 192) }
.Untitled { color: rgb(192, 192, 0) }
.Untitled { color: rgb(192, 192, 64) }
.Untitled { color: rgb(192, 192, 128) }
.Untitled { color: rgb(192, 192, 192) }
.Untitled { color: rgb(192, 224, 0) }
.Untitled { color: rgb(192, 224, 64) }
.Untitled { color: rgb(192, 224, 128) }
.Untitled { color: rgb(192, 224, 192) }
.Untitled { color: rgb(224, 0, 0) }
.Untitled { color: rgb(224, 0, 64) }
.Untitled { color: rgb(224, 0, 128) }
.Untitled { color: rgb(224, 0, 192) }
.Untitled { color: rgb(224, 32, 0) }
.Untitled { color: rgb(224, 32, 64) }
.Untitled { color: rgb(224, 32, 128) }
.Untitled { color: rgb(224, 32, 192) }
.Untitled { color: rgb(224, 64, 0) }
.Untitled { color: rgb(224, 64, 64) }
.Untitled { color: rgb(224, 64, 128) }
.Untitled { color: rgb(224, 64, 192) }
.Untitled { color: rgb(224, 96, 0) }
.Untitled { color: rgb(224, 96, 64) }
.Untitled { color: rgb(224, 96, 128) }
.Untitled { color: rgb(224, 96, 192) }
.Untitled { color: rgb(224, 128, 0) }
.Untitled { color: rgb(224, 128, 64) }
.Untitled { color: rgb(224, 128, 128) }
.Untitled { color: rgb(224, 128, 192) }
.Untitled { color: rgb(224, 160, 0) }
.Untitled { color: rgb(224, 160, 64) }
.Untitled { color: rgb(224, 160, 128) }
.Untitled { color: rgb(224, 160, 192) }
.Untitled { color: rgb(224, 192, 0) }
.Untitled { color: rgb(224, 192, 64) }
.Untitled { color: rgb(224, 192, 128) }
.Untitled { color: rgb(224, 192, 192) }
.Untitled { color: rgb(224, 224, 0) }
.Untitled { color: rgb(224, 224, 64) }
.Untitled { color: rgb(224, 224, 128) }
.Untitled { color: rgb(224, 224, 192) }

Attachment: Screenshot from 2023-06-03 15-40-27.png
Description: PNG image

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


Reply to: