Logos sind ja auch leicht anders als GD Grafiken.
Ich nehme auch schon direkt png, wenn es mir um die bessere Transparenz geht.
Dafür habe ich die pnglite lib auf den TMS portiert, die ARGB 8888 unterstützt und mit png_show eine sehr einfache Funktion zum Anzeigen gebaut. Voraussetzung für Alphablending (optional) ist allerdings, dass vorher schon mit TAP_Osd_Sync() der Hintergrund gezeichnet wurde.
Und damit man nicht zwingend die png-Dateien binär mitliefern muss, sondern mit in den Source integrieren kann (includes .pngc), dafür gibt es noch das PNG-Manager TAP, mit man auf dem TMS konvertieren kann. Also auch kein Windows nötig.
Falls Du doch mit ARGB 1555 auskommst, dann würden die TMS gd Grafiken ausreichen. Eine .GD würde ungefähr so aussehen:
Code: Alles auswählen
#include "type.h"
byte _fsk06smCpm[] =
{
0x00,0x08,0x1b,0x90,0xff,0xff,0x00,0x01,0x00,0x01,0x02,0x7f,0xad,0xb1,0xff,0xff,
0x05,0x70,0x02,0x18,0x6b,0x57,0xcd,0xb7,0x34,0x89,0xa9,0x56,0xf0,0x19,0xcb,0x56,
0xf0,0x19,0xde,0xde,0x04,0x39,0x7c,0x09,0x76,0x85,0xc0,0x50,0x30,0x1c,0x07,0x01,
0x80,0x76,0xa5,0x40,0xa0,0x60,0x3f,0x03,0xf1,0x2a,0x4f,0x64,0xba,0x00,0xc0,0x60,
0x40,0x20,0x0c,0x08,0x9f,0x40,0x27,0x25,0xd4,0x0a,0x04,0x02,0x01,0x00,0x9f,0x7c,
0xdc,0xbb,0x4b,0x26,0xc0,0xf7,0x15,0xd8,0x27,0x76,0x6d,0xa6,0xef,0x0e,0xfa,0xbf,
0x34,0x6f,0xa3,0xd7,0x0e,0xde,0xdd,0x83,0xdf,0x29,0x69,0xf5,0xdd,0xdc,0x42,0x02,
0x5d,0xeb,0xd0,0xc1,0xef,0x05,0xe8,0x5e,0x69,0x62,0x5c,0x73,0x49,0x3c,0x93,0x48,
0xc8,0xe5,0x8a,0x5c,0xc0,0xaf,0xc0,0x3b,0x42,0xf4,0x0b,0x49,0x08,0xdd,0x8c,0x82,
0x10,0x6d,0x96,0x26,0x69,0xe6,0x4b,0x4f,0x72,0x61,0xdd,0x0b,0x31,0xc5,0xce,0x0b,
0xd9,0xa3,0xb3,0x7c,0xa0,0xdb,0x4a,0xae,0x57,0x42,0xb0,0xad,0x43,0x0b,0x42,0x47,
0xae,0x4f,0x32,0x2e,0x30,0x92,0xfc,0x37,0x80,0x26,0x2a,0x9c,0x11,0x37,0x52,0xae,
0x4a,0x6a,0x16,0x49,0x49,0xc4,0x1d,0xee,0x04,0x75,0x98,0x03,0x39,0xb0,0x6f,0x78,
0x24,0x23,0x62,0x03,0x55,0x2a,0xa0,0x22,0x7e,0x8e,0xfc,0x39,0x64,0x98,0xc2,0x84,
0x66,0x6b,0xce,0x24,0x78,0x37,0x83,0x6e,0x66,0xeb,0xb5,0x10,0x19,0x80,0xf5,0x02,
0x05,0xac,0xb6,0xa2,0xc3,0x5d,0x7a,0x5a,0x54,0x14,0x1e,0xf8,0xf8,0x4a,0xf3,0xd6,
0x6b,0x95,0xd4,0xcb,0x72,0xaa,0x74,0xa4,0x6a,0x1f,0x1b,0xbd,0x0d,0xa8,0x9b,0x4c,
0xb9,0x85,0xbe,0x7d,0x83,0x1d,0xf6,0x6b,0x7f,0xeb,0x51,0xc9,0x33,0x18,0x26,0x38,
0xc0,0xd7,0x9d,0xaf,0x6f,0x5e,0x7e,0x64,0xc1,0x48,0x84,0xd1,0x6a,0x72,0x43,0x72,
0xac,0x3c,0xdf,0x49,0xf6,0x10,0x93,0x6a,0x9b,0x4d,0x87,0xc5,0x6b,0x82,0x7a,0x7a,
0x1e,0x69,0xc6,0x6b,0xae,0x7d,0x42,0xdf,0xf0,0x0d,0x55,0x88,0xff,0x8f,0xb4,0xdb,
0x4f,0x2e,0x53,0x50,0xa7,0x23,0x1f,0x9f,0x55,0x1b,0xb1,0x6f,0x73,0x0d,0xe2,0x76,
0x1f,0xff,0x4f,0x99,0x6c,0xc4,0x83,0xcc,0x28,0xd8,0xb7,0xd3,0xda,0x6e,0x1f,0x3f,
0x33,0x70,0x25,0x67,0xe6,0x4f,0xd1,0x3a,0xd4,0xd8,0x29,0xe8,0x57,0x9b,0xf5,0x05,
0xd7,0xc1,0xbe,0xd4,0xf1,0x2f,0xdc,0x3f,0x78,0x94,0x28,0x2b,0xbb,0x37,0xd6,0x6a,
0x3f,0x8d,0xfc,0x09,0xb4,0xfc,0x95,0xe4,0xee,0x04,0xc8,0x1f,0xd5,0xbf,0x20,0x7d,
0xa9,0x4b,0x92,0xeb,0x9c,0xd4,0xf8,0x9c,0x21,0x2e,0xc4,0x1e,0xf1,0xfe,0x34,0x7d,
0xe3,0xff,0xeb,0x7d,0x4e,0xbe,0xbf,0xc9,0x6a,0x32,0xa3,0xfb,0x4c,0x19,0x3a,0x6f,
0x25,0x65,0x65,0xe1,0x5f,0xe7,0xd5,0xf3,0x87,0xa3,0x5f,0xfe,0xa5,0xfb,0x22,0x74,
0x76,0x37,0xda,0x79,0xb4,0xbd,0xbc,0x30,0xfe,0x9f,0x6c,0x57,0xbe,0xef,0xa5,0xa9,
0x7d,0x1d,0x55,0xdd,0x6f,0x28,0x57,0xd0,0xc3,0xfd,0x90,0xc9,0xf0,0xc1,0x14,0x5a,
0x02,0xdb,0x0f,0x59,0xac,0x35,0x87,0x7e,0x1e,0x80,0x37,0xa1,0x2c,0x38,0xf0,0xd8,
0x76,0xeb,0x86,0x4f,0xbf,0x3f,0xc3,0x56,0xc3,0x48,0xd4,0xb2,0x30,0x36,0x35,0x64,
0x1f,0xf8,0xeb,0x08,0xe9,0x98,0x70,0x58,0x91,0xd3,0x19,0x70,0xd5,0xf6,0x67,0xa8,
0x36,0x25,0xa8,0x9c,0xec,0x2f,0x25,0x03,0x69,0x7d,0x14,0xc3,0x0e,0xe3,0xb0,0xd4,
0x26,0xa5,0x4f,0x20,0xf8,0x29,0xf7,0xdb,0xf0,0xd3,0x38,0x65,0x2b,0xac,0x30,0xe6,
0xed,0x66,0xe8,0x57,0x8e,0x5e,0x3d,0x10,0x5a,0xf2,0xde,0xf1,0x71,0x8f,0xd9,0x8f,
0xdf,0x32,0xc0,0x8a,0x11,0xb8,0x9f,0xe2,0x17,0x1f,0x09,0xe2,0xe3,0x2c,0x54,0x26,
0xc3,0xf6,0xd3,0x70,0xd5,0x58,0xfd,0xfc,0x59,0x89,0xbc,0x7c,0x74,0xaf,0x0f,0x16,
0x2b,0x8e,0x79,0x29,0x57,0xed,0xd5,0x38,0x3c,0x2a,0xc7,0x7c,0x65,0xea,0xe1,0xe3,
0x7f,0x77,0x75,0x54,0x8f,0xc7,0xfd,0xdc,0x3b,0xc8,0x40,
};
TYPE_GrData _fsk06smGd =
{
1, //version
0, //reserved
OSD_1555, //data format
COMPRESS_Tfp, //compressed method
_fsk06smCpm, //data
1392, //size
24, //width
29 //height
};
Aber frag mich bitte nicht, was die Komprimierung mit COMPRESS_Tfp bedeutet (laut tap.h wird es nur "Topfield pack" genannt. Das weiß sicherlich nur Alex.
Steht leider auch nicht in den technischen Infos zu TF drin, die ich kenne.
Aber Du könntest die unkomprimierte Speicherung ausprobieren, indem Du an der Stelle einfach COMPRESS_None angibst und dann die Daten oben im 1555 Format hexadezimal abbildest.
Er will mit Linux arbeiten, nicht mit Windows. Somit hilft ihm MakeGD bzw. MakeGDExtended nicht viel.