LGW schrieb:
libexif sieht mir eigentlich wenig Objektorientiert aus...
hab halt runtergeladen und immer nur cs als Endung gesehen so richtig blicke ich durch den Code auch nicht durch...
ich meine der Header müsste ähnlich wie ein WAVE Header sein, ein grosses Bytearray dies in ein Struct laden um an die Dateiinfos zu kommen , wie hier:
struct wave
{
char main_chunk[4]; // `RIFF`
DWORD g_length; // Gesamtl?nge der Datei
char chunk_type[4]; // `WAVE`
char sub_chunk[4]; // `fmt `
DWORD sub_length; // L?nge sub_chunk, immer = 16 Byte
WORD format; // momentan immer = 1 fr PCM Code
WORD modus; // = 1 fr mono, = 2 fr stereo
DWORD sample_fq; // Sample-Frequenz
DWORD byte_p_sec; // Datendurchsatz pro Sekunde
WORD byte_p_spl; // Bytes per Sample; = 1 fr 8-bit, = 2 fr 16-bit
WORD bit_p_spl; // Bit per Sample; 8, 12 oder 16
}my_wav_hd;
struct sub_chunk //sub_chunk.char data_chunk[0]
{
char data_chunk[4]; // Kennung fr Data-Bereich; = `data`
DWORD data_length; // L?nge des Data-Blocks
}my_sub_chunk;
char puffer[1024];
fread( puffer, 1000, 1, dateiein );
fclose(dateiein);
memcpy(&my_wav_hd,puffer,36);
memcpy(&my_sub_chunk,puffer+36+my_wav_hd.sub_length-16 ,8);
und so kann man dann zugreifen...
printf("my_wav_hd.sub_length : %ld \n",my_wav_hd.sub_length);
printf("my_wav_hd.format [PCM = 1] : %d \n",my_wav_hd.format);
printf("Modus=1 mono, 2 stereo : %d \n", my_wav_hd.modus);
printf("my_wav_hd.sample_fq : %ld \n",my_wav_hd.sample_fq);
ich weiss während der wave header ehewr statisch ist, kann der jpg header dynamisch sein, aber irgenwie muss man doch da ähnlich zugreifen können..
also irgendwo müssen die Pointer auf var zeigen, als byte, word , dword oder char[]