#define SPACE 0x0a
#define SPACE_WIDTH_HEIGHT 0x20
#define MAXBUFFER 6
+#define BYTE_BITS 8
enum imgformat {
BW = 0,
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_image_converter_write_bw_pnm");
+ int bit_witdth = width * BYTE_BITS;
xel** pixels = malloc(sizeof(xel*) * height);
for (int i = 0; i < height; i++) {
- pixels[i] = malloc(sizeof(xel) * width);
+ pixels[i] = malloc(sizeof(xel) * bit_witdth);
}
int currwidth = 0;
int currheight = 0;
+ int bit = 0;
for (int i = 0; i < size; i++) {
- pixels[currheight][currwidth].r = 0;
- pixels[currheight][currwidth].g = 0;
- pixels[currheight][currwidth].b = 0;
- if (data[i] < 1)
- pixels[currheight][currwidth].b = PGM_MAXMAXVAL;
+ for (int j = 0; j < 8; j++) {
+ bit = (1 >> data[i]) & 1;
+ pixels[currheight][currwidth].r = 0;
+ pixels[currheight][currwidth].g = 0;
+ pixels[currheight][currwidth].b = 0;
+ if (bit > 0)
+ pixels[currheight][currwidth].b = PGM_MAXMAXVAL;
- currwidth++;
- if (currwidth >= width) {
+ currwidth++;
+ }
+
+ if (currwidth >= bit_witdth) {
currwidth = 0;
currheight++;
}
size_t decompress_size = width * height;
unsigned char* decompress_data = malloc(sizeof(unsigned char) * decompress_size);
+ memset(decompress_data, 0, decompress_size);
unsigned char* row = NULL;
for (int i = 0; i < height; i++) {