Re: Getting header info of a BMP file
mmcclaf wrote:
Good news, I managed to get the next part to half work but I don't
think I'm getting the right bytes in for my colours.
Any ideas?
Yes, a couple.
It seems to me that you may be
trying to do too many tasks at one time.
Have you determined that your bitmap
contains a color palette?
Have you determined the number of it's entries?
Have you retrieved the array of bytes
that represents the color palette?
Are you having trouble translating the
color palette bytes into a form that you can use?
import java.util.HashMap;
import java.util.Map;
public class TranslateColorData {
public static void main(String[] args) {
// Given byte[] palette, and Map colorNames,
// produce the table as commented below.
byte[] palette =
{ 0,0,0,0,-1,-1,-1,0,
-64,-64,-64,0,-128,-128,-128,0,
-1,0,0,0,-128,0,0,0,
0,-1,0,0,0,-128,0,0,
0,0,-1,0,0,0,-128,0,
-1,0,-1,0,-128,0,-128,0,
0,-1,-1,0,0,-128,-128,0,
-1,-1,0,0,-128,-128,0,0
};
Map<Integer, String> colorNames =
new HashMap<Integer, String>();
colorNames.put(Integer.valueOf(0), "Black");
colorNames.put(Integer.valueOf(16777215), "White");
colorNames.put(Integer.valueOf(12632256), "Gray");
colorNames.put(Integer.valueOf(8421504), "Dark Grey");
colorNames.put(Integer.valueOf(255), "Red");
colorNames.put(Integer.valueOf(128), "Dark Red");
colorNames.put(Integer.valueOf(65280), "Green");
colorNames.put(Integer.valueOf(32768), "Dark Green");
colorNames.put(Integer.valueOf(16711680), "Blue");
colorNames.put(Integer.valueOf(8388608), "Dark Blue");
colorNames.put(Integer.valueOf(16711935), "Magenta");
colorNames.put(Integer.valueOf(8388736), "Dark Magenta");
colorNames.put(Integer.valueOf(16776960), "Cyan");
colorNames.put(Integer.valueOf(8421376), "Dark Cyan");
colorNames.put(Integer.valueOf(65535), "Yellow");
colorNames.put(Integer.valueOf(32896), "Brown");
/*
Black {0 0 0} {0}
White {255 255 255} {16777215}
Gray {192 192 192} {12632256}
Dark Grey {128 128 128} {8421504}
Red {255 0 0} {255}
Dark Red {128 0 0} {128}
Green {0 255 0} {65280}
Dark Green {0 128 0} {32768}
Blue {0 0 255} {16711680}
Dark Blue {0 0 128} {8388608}
Magenta {255 0 255} {16711935}
Dark Magenta {128 0 128} {8388736}
Cyan {0 255 255} {16776960}
Dark Cyan {0 128 128} {8421376}
Yellow {255 255 0} {65535}
Brown {128 128 0} {32896}
*/
}
}