Java tworzenie pliku BMP

0

Witam,

Mam problem z tworzeniem pliku BMP, chodzi o to że muszę stworzyć bitmapę 'manualnie' bez żadnej innej biblioteki która utworzy za mnie nagłówki itd.

char file[] = {'B','M',0,0,0,0, 0,0,0,0, 54,0,0,0};  
        char info[] = {
    40,0,0,0, // info hd size
    0,0,0,0, // width
    0,0,0,0, // heigth
    1,0, // number color planes
    24,0, // bits per pixel
    0,0,0,0, // compression is none
    0,0,0,0, // image bits size
    0x13,0x0B,0,0, // horz resoluition in pixel / m
    0x13,0x0B,0,0, // vert resolutions (0x03C3 = 96 dpi, 0x0B13 = 72 dpi)
    0,0,0,0, // #colors in pallete
    0,0,0,0, // #important colors
    };
        int w=10;
int h=10;

int padSize  = (4-w%4)%4;
int sizeData = w*h*3 + h*padSize;
int sizeAll  = sizeData + file.length + info.length;

file[2] = (char)( sizeAll    );
file[3] = (char)( sizeAll>> 8);
file[4] = (char)( sizeAll>>16);
file[5] = (char)( sizeAll>>24);

info[4] = (char)( w   );
info[5] = (char)( w>> 8);
info[6] = (char)( w>>16);
info[7] = (char)( w>>24);

info[ 8] = (char)( h    );
info[ 9] = (char)( h>> 8);
info[10] = (char)( h>>16);
info[11] = (char)( h>>24);

info[24] = (char)( sizeData    );
info[25] = (char)( sizeData>> 8);
info[26] = (char)( sizeData>>16);
info[27] = (char)( sizeData>>24);

 PrintWriter fo = new PrintWriter("imagee.bmp");
 for(int i=0; i<file.length; i++) {
     fo.write((char)file[i]);
 }
 for(int i=0; i<info.length; i++) {
     fo.write((char)info[i]);
 }
fo.close();

Niestety, plik się tworzy, lecz nie można go otworzyć, zawartość pliku bmp to

BMŶ      6   (   
   
             ŀ            

Co może tu być źle?

0

Ja bym pomyślał nad tablicą typu

byte

zamiast char

1 użytkowników online, w tym zalogowanych: 0, gości: 1