#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct ifd_struktura {
unsigned short azonosito;
unsigned short tipus;
unsigned int hossz;
unsigned int ertek;
} ifd_tipus;
typedef struct fejlec_struktura {
unsigned short adatabrazolas;
unsigned short azonosito;
unsigned int eltolas;
unsigned short szunet;
unsigned short ifdszam;
ifd_tipus ifd[12];
} fejlec_tipus;
fejlec_tipus fejlec;
unsigned char kep[100][200];
void ifd_beallit(n, azonosito, tipus, hossz, ertek)
int n;
unsigned short azonosito;
unsigned short tipus;
unsigned int hossz;
unsigned int ertek;
{
fejlec.ifd[n].azonosito = azonosito;
fejlec.ifd[n].tipus = tipus;
fejlec.ifd[n].hossz = hossz;
fejlec.ifd[n].ertek = ertek;
}
void tiff_ment(char *fnev)
{
int n, i, j;
FILE *file;
for (i = 0; i < 100; i++) {
for (j = 0; j < 200; j++) {
kep[i][j] = 0;
if ((i > 10) && (i < 90) && (j > 20) && (j < 180))
kep[i][j] = 128;
if ((i == 0) || (i == 99) || (j == 0) || (j == 199))
kep[i][j] = 255;
}
}
n = sizeof(fejlec_tipus);
fejlec.adatabrazolas = 0x4949;
fejlec.azonosito = 0x2a;
fejlec.eltolas = 10;
fejlec.ifdszam = 12;
ifd_beallit(0, 0x0fe, 4, 1, 0);
ifd_beallit(1, 0x100, 4, 1, 200); /* X méret */
ifd_beallit(2, 0x101, 4, 1, 100); /* Y méret */
ifd_beallit(3, 0x102, 3, 1, 8); /* bit/minta */
ifd_beallit(4, 0x103, 3, 1, 1); /* sűrítés */
ifd_beallit(5, 0x106, 3, 1, 0); /* háttér 0=fehér 1=fekete */
ifd_beallit(6, 0x111, 4, 1, n); /* kép kezdete */
ifd_beallit(7, 0x116, 4, 1, 100 * 200); /* szallagok */
ifd_beallit(8, 0x117, 4, 1, 100 * 200);
ifd_beallit(9, 0x11a, 5, 1, 300); /* X felbontás */
ifd_beallit(10, 0x11b, 5, 1, 300); /* Y felbontás */
ifd_beallit(11, 0x128, 3, 1, 2); /* mértékegység 2=inch 3=cm */
file = fopen(fnev, "wb");
if (file == NULL) exit;
if (fwrite(&fejlec, 1, sizeof(fejlec), file) == 0) {
fclose(file);
exit;
}
if (fwrite(kep, 1, sizeof(kep), file) == 0) {
fclose(file);
exit;
}
fclose(file);
}
void main()
{
tiff_ment("kep.tif");
}