作者:Devil灬旋律 | 来源:互联网 | 2023-02-03 11:46
Heyfolks!嘿人!Igotthisimage.bmp.Whenireaditwithallpaddingincludedandsuchigetthisr
Hey folks!
嘿人!
I got this image.bmp. When i read it with all padding included and such i get this result.
我得到了这个image.bmp。当我用所有的填充来读它时,我得到了这个结果。
What am i doing wrong here besides reading the image upside down? I don't find anything relative on Wikipedia or by googling. It seems that after 24 pixels width the image is mirrored 8 pixels. Why!? I don't get it!? How can i fix this!?
除了把图像倒过来看,我还做错了什么?我在维基百科或谷歌上找不到任何相关信息。看起来在24像素宽度后,图像被镜像为8像素。为什么! ?我不明白?我怎么能解决这个问题?
I'm reading the file with some C++ code on Windows reading the BMP file raw. The image file is monochrome. 1 bit per pixel.
我正在用Windows上的c++代码读取原始的BMP文件。图像文件是单色的。1比特每像素。
Code for showing bitmap data:
显示位图数据的代码:
unsigned int count = 0; // Bit counting variable
unsigned char *bitmap_data = new char[size]; // Array containing the raw data of the image
for(unsigned int i=0; i= width){ // Checking if the row is ended
cout <<"\n"; // Line feed
while(count > 32) count -=32; // For padding.
if(count <24) i++;
if(count <16) i++;
if(count <8) i++;
count = 0; // resetting bit count and break out to next row
break;
}
if(i>=size) break; // Just in case
count++; // Increment the bitcounter. Need to be after end of row check
if(bitmap_data[i] & j){ // Compare bits
cout <<(char)0xDB; // Block
}else{
cout <<(char)' '; // Space
}
}
}
Thanks in advance!
提前谢谢!
1 个解决方案