fclose(jpeg_stream);
}
-void _kds_s2000w_image_converter_write_bw_pnm(char* data,
+unsigned char _kds_s2000w_image_converter_mirror_bits(unsigned char data)
+{
+ char tmp = data;
+ data = 0;
+
+ for (int j = 0; j < BYTE_BITS; j++) {
+ data += tmp & 1;
+ data <<= 1;
+ tmp >>= 1;
+ }
+
+ return data;
+}
+
+void _kds_s2000w_image_converter_write_bw_pnm(unsigned char* data,
size_t size,
int width,
int height,
int currwidth = 0;
int currheight = 0;
- char bit = 0;
+ unsigned char bit = 0;
for (int i = 0; i < size; i++) {
+ data[i] = _kds_s2000w_image_converter_mirror_bits(data[i]);
+
for (int j = 0; j < BYTE_BITS; j++) {
- bit = data[i] & 0x01;
+ bit = data[i] & 1;
if (bit == 0)
pixels[currheight][currwidth].b = PNM_MAXMAXVAL;
TIFFGetField(tiff, TIFFTAG_IMAGELENGTH, &height);
size_t decompress_size = width * height;
- char* decompress_data = malloc(sizeof(char) * decompress_size);
+ unsigned char* decompress_data = malloc(sizeof(unsigned char) * decompress_size);
memset(decompress_data, 0, decompress_size);
- char* row = NULL;
+ unsigned char* row = NULL;
for (int i = 0; i < height; i++) {
row = &decompress_data[width * i];
TIFFReadScanline(tiff, row, i, 0);