0
我試圖將單色xbm文件(每8像素1個字節,意思是每像素1位)的數據轉換爲每像素1個字節的內存位圖表示。我該怎麼做?如何將單色xbm位圖數據轉換爲1通道8bpp圖像?
[更新]
到目前爲止,我一直想(沒有成功)的線的東西:
#define IMAGE_WIDTH 769
#define IMAGE_HEIGHT 14
static void uncompress_bm(unsigned char** buf, int* w, int* h)
{
*w = IMAGE_WIDTH; *h = IMAGE_HEIGHT;
unsigned int num_pixels = (*w) * (*h);
*buf = malloc(num_pixels * sizeof(char));
memset(*buf, 0, num_pixels * sizeof(char));
for (unsigned int i = 0; i < num_pixels; ++i) {
unsigned short data_bit = image_data_bits2[i/8];
(*buf)[i] = (data_bit & (1 << (i % 8))) ? 255 : 0;
}
}
unsigned char image_data_bits[] = {
0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF,
0x01, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF,
0xFF, 0x01, 0xC9, 0x9C, 0xF9, 0x40, 0x98, 0x0F, 0xE4, 0xE4, 0xCF, 0x7F,
0xFE, 0xFF, 0xFF, 0x39, 0x1C, 0x0E, 0x1C, 0x38, 0x73, 0x80, 0xC3, 0x01,
0x0E, 0x1F, 0xFE, 0xFF, 0xFC, 0xF3, 0x81, 0x0F, 0x7C, 0x38, 0xF0, 0xE1,
0xC0, 0x81, 0xC0, 0x81, 0x3C, 0xF9, 0x93, 0x27, 0x9F, 0x9F, 0xFC, 0x1C,
0x0E, 0x7C, 0x38, 0xF0, 0x81, 0x40, 0x9E, 0xFC, 0xE4, 0x27, 0x3F, 0xF9,
0x09, 0x84, 0x7C, 0xC8, 0xFC, 0xCF, 0x87, 0x03, 0x1F, 0x0E, 0x1C, 0x08,
0x1C, 0xC8, 0x93, 0x3F, 0x79, 0xF2, 0xF9, 0xC9, 0xCF, 0xE1, 0xC0, 0x87,
0x03, 0x1F, 0x08, 0xE4, 0xC9, 0x4F, 0x7E, 0xF2, 0x93, 0x9F, 0xC0, 0x21,
0xE1, 0x33, 0x01, 0xC9, 0x9C, 0xF9, 0x40, 0x98, 0x0F, 0xE4, 0xE4, 0xCF,
0x7F, 0xFE, 0xFF, 0xFF, 0x39, 0x1C, 0x0E, 0x1C, 0x38, 0x73, 0x80, 0xC3,
0x01, 0x0E, 0x1F, 0xFE, 0xFF, 0xFC, 0xF3, 0x81, 0x0F, 0x7C, 0x38, 0xF0,
0xE1, 0xC0, 0x81, 0xC0, 0x81, 0x3C, 0xF9, 0x93, 0x27, 0x9F, 0x9F, 0xFC,
0x1C, 0x0E, 0x7C, 0x38, 0xF0, 0x81, 0x40, 0x9E, 0xFC, 0xE4, 0x27, 0x3F,
0xF9, 0x09, 0x84, 0x7C, 0xC8, 0xFC, 0xCF, 0x87, 0x03, 0x1F, 0x0E, 0x1C,
0x08, 0x1C, 0xC8, 0x93, 0x3F, 0x79, 0xF2, 0xF9, 0xC9, 0xCF, 0xE1, 0xC0,
0x87, 0x03, 0x1F, 0x08, 0xE4, 0xC9, 0x4F, 0x7E, 0xF2, 0x93, 0x9F, 0xC0,
0x21, 0xE1, 0x33, 0x01, 0xC9, 0x04, 0x20, 0x7F, 0x98, 0xF3, 0x27, 0x9F,
0xCC, 0x7C, 0xFE, 0xFF, 0xFF, 0xC9, 0x73, 0xFE, 0xF3, 0x27, 0x73, 0xFE,
0xFC, 0x7F, 0xF2, 0xE4, 0xC9, 0x39, 0x07, 0xCE, 0x7F, 0x32, 0x93, 0x27,
0x4F, 0x9E, 0x3C, 0xF9, 0x7C, 0xFE, 0x3C, 0xF9, 0x93, 0x39, 0x1F, 0x86,
0xF0, 0xE4, 0xC9, 0x93, 0x27, 0x4F, 0xFE, 0x73, 0x9E, 0xFC, 0x64, 0xE6,
0xCC, 0x67, 0xFE, 0xE4, 0xFC, 0xF9, 0xFF, 0x3F, 0x79, 0xF2, 0xE4, 0xC9,
0x93, 0xCF, 0xE7, 0xCF, 0x93, 0x3F, 0x99, 0xF3, 0x61, 0x08, 0x4F, 0x9E,
0x3C, 0x79, 0xF2, 0xE4, 0x3F, 0xE7, 0xC9, 0x4F, 0x66, 0xCE, 0x7C, 0xE6,
0xCF, 0x39, 0xE7, 0xCC, 0x01, 0xC9, 0x04, 0x20, 0x7F, 0x98, 0xF3, 0x27,
0x9F, 0xCC, 0x7C, 0xFE, 0xFF, 0xFF, 0xC9, 0x73, 0xFE, 0xF3, 0x27, 0x73,
0xFE, 0xFC, 0x7F, 0xF2, 0xE4, 0xC9, 0x39, 0x07, 0xCE, 0x7F, 0x32, 0x93,
0x27, 0x4F, 0x9E, 0x3C, 0xF9, 0x7C, 0xFE, 0x3C, 0xF9, 0x93, 0x39, 0x1F,
0x86, 0xF0, 0xE4, 0xC9, 0x93, 0x27, 0x4F, 0xFE, 0x73, 0x9E, 0xFC, 0x64,
0xE6, 0xCC, 0x67, 0xFE, 0xE4, 0xFC, 0xF9, 0xFF, 0x3F, 0x79, 0xF2, 0xE4,
0xC9, 0x93, 0xCF, 0xE7, 0xCF, 0x93, 0x3F, 0x99, 0xF3, 0x61, 0x08, 0x4F,
0x9E, 0x3C, 0x79, 0xF2, 0xE4, 0x3F, 0xE7, 0xC9, 0x4F, 0x66, 0xCE, 0x7C,
0xE6, 0xCF, 0x39, 0xE7, 0xCC, 0x01, 0xF9, 0x9F, 0xF9, 0xF0, 0xE7, 0x0F,
0x3F, 0x9F, 0x03, 0x07, 0xE0, 0x07, 0x7E, 0xCE, 0x73, 0x3E, 0x7C, 0x38,
0x40, 0xE0, 0xC0, 0x9F, 0x0F, 0x1F, 0xF8, 0xCF, 0xFF, 0x3F, 0x87, 0x33,
0x1C, 0x20, 0x40, 0xFE, 0x3C, 0x81, 0x40, 0x86, 0x00, 0xF9, 0x13, 0x3E,
0x9F, 0x99, 0xCC, 0xE4, 0x09, 0x9C, 0x27, 0xF0, 0xE1, 0x73, 0x9E, 0x33,
0x67, 0xE6, 0xF3, 0x9F, 0x3F, 0xE7, 0xF3, 0xF9, 0xFF, 0xFF, 0x01, 0x02,
0xE4, 0xCF, 0x13, 0x08, 0x64, 0x08, 0x90, 0x3F, 0xE1, 0xF3, 0x99, 0xC9,
0x4C, 0x9E, 0xC0, 0x79, 0x02, 0x1F, 0x3E, 0xE7, 0x39, 0x73, 0x66, 0x3E,
0xFF, 0xF9, 0x73, 0x3E, 0x9F, 0xFF, 0x01, 0xF9, 0x9F, 0xF9, 0xF0, 0xE7,
0x0F, 0x3F, 0x9F, 0x03, 0x07, 0xE0, 0x07, 0x7E, 0xCE, 0x73, 0x3E, 0x7C,
0x38, 0x40, 0xE0, 0xC0, 0x9F, 0x0F, 0x1F, 0xF8, 0xCF, 0xFF, 0x3F, 0x87,
0x33, 0x1C, 0x20, 0x40, 0xFE, 0x3C, 0x81, 0x40, 0x86, 0x00, 0xF9, 0x13,
0x3E, 0x9F, 0x99, 0xCC, 0xE4, 0x09, 0x9C, 0x27, 0xF0, 0xE1, 0x73, 0x9E,
0x33, 0x67, 0xE6, 0xF3, 0x9F, 0x3F, 0xE7, 0xF3, 0xF9, 0xFF, 0xFF, 0x01,
0x02, 0xE4, 0xCF, 0x13, 0x08, 0x64, 0x08, 0x90, 0x3F, 0xE1, 0xF3, 0x99,
0xC9, 0x4C, 0x9E, 0xC0, 0x79, 0x02, 0x1F, 0x3E, 0xE7, 0x39, 0x73, 0x66,
0x3E, 0xFF, 0xF9, 0x73, 0x3E, 0x9F, 0xFF, 0x01, 0xFF, 0x07, 0xE0, 0xCF,
0x19, 0xF2, 0x3F, 0x9F, 0xCC, 0x7C, 0xFE, 0xFF, 0x9F, 0xCF, 0x73, 0xCE,
0xFF, 0xE7, 0xF3, 0x9F, 0x3C, 0xE7, 0xF3, 0xFC, 0xC9, 0x39, 0x07, 0xCE,
0xFF, 0xF3, 0x9F, 0x27, 0x4F, 0x9E, 0x3C, 0xF9, 0x7C, 0x9E, 0x3C, 0xC9,
0x93, 0x39, 0x9F, 0x9F, 0x3C, 0xE4, 0xC9, 0x9F, 0x27, 0xF3, 0x9F, 0x73,
0x9E, 0x33, 0x67, 0xE6, 0xCC, 0x9F, 0xCF, 0xE7, 0xCF, 0xF9, 0xFF, 0xFF,
0x79, 0xF2, 0xE4, 0xC9, 0x93, 0xCF, 0xE7, 0xC9, 0x93, 0x3C, 0x99, 0xF3,
0xF9, 0xC9, 0x43, 0x9E, 0xFC, 0x79, 0x32, 0xFF, 0x39, 0xE7, 0x39, 0x73,
0x66, 0xCE, 0xFC, 0xF9, 0xFC, 0x39, 0xE7, 0xFF, 0x01, 0xFF, 0x07, 0xE0,
0xCF, 0x19, 0xF2, 0x3F, 0x9F, 0xCC, 0x7C, 0xFE, 0xFF, 0x9F, 0xCF, 0x73,
0xCE, 0xFF, 0xE7, 0xF3, 0x9F, 0x3C, 0xE7, 0xF3, 0xFC, 0xC9, 0x39, 0x07,
0xCE, 0xFF, 0xF3, 0x9F, 0x27, 0x4F, 0x9E, 0x3C, 0xF9, 0x7C, 0x9E, 0x3C,
0xC9, 0x93, 0x39, 0x9F, 0x9F, 0x3C, 0xE4, 0xC9, 0x9F, 0x27, 0xF3, 0x9F,
0x73, 0x9E, 0x33, 0x67, 0xE6, 0xCC, 0x9F, 0xCF, 0xE7, 0xCF, 0xF9, 0xFF,
0xFF, 0x79, 0xF2, 0xE4, 0xC9, 0x93, 0xCF, 0xE7, 0xC9, 0x93, 0x3C, 0x99,
0xF3, 0xF9, 0xC9, 0x43, 0x9E, 0xFC, 0x79, 0x32, 0xFF, 0x39, 0xE7, 0x39,
0x73, 0x66, 0xCE, 0xFC, 0xF9, 0xFC, 0x39, 0xE7, 0xFF, 0x01, 0xF9, 0x9F,
0x39, 0xF0, 0x19, 0x0E, 0xFC, 0xE4, 0xCF, 0x7F, 0xFE, 0xFC, 0x93, 0x3F,
0x1C, 0x08, 0x10, 0xF8, 0x73, 0xE0, 0xC3, 0xE7, 0x0F, 0x1F, 0x7E, 0xFE,
0xFC, 0xF3, 0xE7, 0x0F, 0x9C, 0x27, 0xF0, 0xE1, 0xC0, 0x81, 0xFC, 0xE1,
0x3C, 0x39, 0x9C, 0x27, 0x90, 0x9F, 0xFC, 0x1C, 0xCE, 0x7F, 0x38, 0x4F,
0xE0, 0xF3, 0xE1, 0xCF, 0x9F, 0x39, 0x3F, 0x9F, 0x0F, 0x84, 0x4F, 0xF8,
0xFF, 0xFF, 0x79, 0x02, 0x1F, 0x0E, 0x1C, 0xC8, 0x1F, 0xCE, 0x93, 0xC3,
0x79, 0x02, 0xF9, 0xC9, 0xCF, 0xE1, 0xFC, 0x87, 0xF3, 0x04, 0x3E, 0x1F,
0xFE, 0xFC, 0x99, 0xF3, 0xF3, 0xF9, 0xC0, 0x21, 0xE1, 0xFF, 0x01, 0xF9,
0x9F, 0x39, 0xF0, 0x19, 0x0E, 0xFC, 0xE4, 0xCF, 0x7F, 0xFE, 0xFC, 0x93,
0x3F, 0x1C, 0x08, 0x10, 0xF8, 0x73, 0xE0, 0xC3, 0xE7, 0x0F, 0x1F, 0x7E,
0xFE, 0xFC, 0xF3, 0xE7, 0x0F, 0x9C, 0x27, 0xF0, 0xE1, 0xC0, 0x81, 0xFC,
0xE1, 0x3C, 0x39, 0x9C, 0x27, 0x90, 0x9F, 0xFC, 0x1C, 0xCE, 0x7F, 0x38,
0x4F, 0xE0, 0xF3, 0xE1, 0xCF, 0x9F, 0x39, 0x3F, 0x9F, 0x0F, 0x84, 0x4F,
0xF8, 0xFF, 0xFF, 0x79, 0x02, 0x1F, 0x0E, 0x1C, 0xC8, 0x1F, 0xCE, 0x93,
0xC3, 0x79, 0x02, 0xF9, 0xC9, 0xCF, 0xE1, 0xFC, 0x87, 0xF3, 0x04, 0x3E,
0x1F, 0xFE, 0xFC, 0x99, 0xF3, 0xF3, 0xF9, 0xC0, 0x21, 0xE1, 0xFF, 0x01,
0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x07, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF,
0x01, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x07, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF,
0xFF, 0x01,
};
通過編寫相應的代碼... OK更嚴重的是,告訴我們你到目前爲止做了什麼,然後問你在哪裏有困難的部分具體問題。 –
我認爲它應該是'unsigned char data_bit = image_data_bits [i/8]' –
順便說一句,它是以標點符號,數字0-9和字母表(兩次)的形式出現的。像這樣...... http://thesetchells.com/a.jpg –