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
|
#include "psdriver.h"
void PS_Bitmap(int ncols, int nrows, int threshold, const unsigned char *buf)
{
int i, j;
output("%d %d %d %d BITMAP\n", cur_x, cur_y, ncols, nrows);
for (j = 0; j < nrows; j++) {
unsigned int bit = 0x80;
unsigned int acc = 0;
for (i = 0; i < ncols; i++) {
unsigned int k = buf[j * ncols + i];
if (k > (unsigned int)threshold)
acc |= bit;
bit >>= 1;
if (!bit) {
output("%02X", acc);
bit = 0x80;
acc = 0;
}
}
if (bit != 0x80)
output("%02X", acc);
output("\n");
}
}
|