09. april 2003 - 15:14
Der er
4 kommentarer og 1 løsning
Fortolkning af BMP billede
Goddag her er en lille kode der skal fortolke et BMP-billede. Hvordan får jeg udskrevet den første RGB værdi, som tre integers??? Headerens størrelse skulle gerne være 54 byte, hvorefter selve paletten skulle komme. #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct BMPFilHead{ char type[2]; char size[4]; char reserved1[4]; char offset[4]; char headerSize[4]; char width[4]; char height[4]; }BMPhoved; int main(void){ FILE* filen = fopen("farver.bmp", "rb"); char hhh[3000]; BMPhoved* pointer = (BMPhoved*)hhh; int y; int k; //char* matrix = (char*)malloc(pointer -> width[0] * pointer -> height[0] * 3) y = 0; while(hhh[y] != EOF){ hhh[y] = getc(filen); y++; } fclose(filen); return 0; }
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
09. april 2003 - 15:21
#1
Hvis paletten kommer lige efter headeren, så vil: char* Palette = &hhh[sizeof(BMPhoved)]; jo pege på paletten. Og hvis hver RGB værdi fylder en byte (jeg kan ikke huske BMP format), så vil: Palette[0] Palette[1] Palette[2] jo indeholde de 3 første RGB værdier.
09. april 2003 - 16:05
#2
Skal dit program køre under Windows eller..?
09. april 2003 - 17:05
#3
while(hhh[y] != EOF){ vil gå galt da hhh er char, EOF skal være i en int.
09. april 2003 - 17:09
#4
Når vi nu er ved at kigge på den løkke, så er selve testet jo også forkert. int c; y = 0; while((c = getc(filen)) != EOF){ hhh[y] = c; y++; }
11. april 2003 - 09:49
#5
OK jeg tror jeg har fundet ud af det :-) Tak for hjælpen
Kurser inden for grundlæggende programmering