1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
#include <stdio.h>
#include <stdlib.h>
typedef struct tagBITMAPINFOHEADER {
int biDateigroesse; //Dateigröße in Bytes
int biSize;
int biBreite; //Breite...
int biHoehe; //Höhe in Pixeln
int biBildpunkte; //Anzahl Bildpunkte
} BITMAPINFOHEADER;
int main()
{
FILE *pfDatei;
int iX;
unsigned char *pucWerte;
int iTEST=0; //Testvariable zum Fuckeln
BITMAPINFOHEADER IH;
printf ("Bild einlesen und auswerten\n");
printf ("===========================\n\n");
pfDatei = fopen("bild.bmp","r");
if (pfDatei == NULL)
{
printf ("Datei nicht gefunden!\n");
}
//Daten aus Bitmap auslesen
fseek (pfDatei , 0 , SEEK_END);
IH.biDateigroesse = ftell (pfDatei);
rewind (pfDatei);
fclose (pfDatei);
//Größe des Bildes
printf ("Groesse: %d Bytes\n", IH.biDateigroesse);
//Breite einlesen
pfDatei = fopen("bild.bmp","r");
fseek(pfDatei, 18L, SEEK_CUR);
fread(&IH.biBreite, sizeof(int), 1, pfDatei);
fclose(pfDatei);
printf ("Breite: %d Pixel\n", IH.biBreite);
//Höhe einlesen
pfDatei = fopen("bild.bmp","r");
fseek(pfDatei, 22L, SEEK_CUR);
fread(&IH.biHoehe, sizeof(int), 1, pfDatei);
fclose(pfDatei);
printf ("Hoehe: %d Pixel\n", IH.biHoehe);
//Gesamtanzahl Bildpunkte berechnen
IH.biBildpunkte = IH.biBreite*IH.biHoehe;
printf ("Bildpunkte insgesamt: %d\n\n", IH.biBildpunkte);
//Bildpunkte in Array schreiben
pfDatei = fopen("bild.bmp","r");
fseek(pfDatei, 25L, SEEK_CUR);
for (iX=0; iX<20; iX++)
{
//joar....??? ^^
}
fclose(pfDatei);
}
|