Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 我的bmp颜色怎么了?_Image_File_Bitmap_Rgb_Bmp - Fatal编程技术网

Image 我的bmp颜色怎么了?

Image 我的bmp颜色怎么了?,image,file,bitmap,rgb,bmp,Image,File,Bitmap,Rgb,Bmp,我试图使用bmp文件作为数据存储(因为我的程序使用2d矩阵,这种方式可以在没有其他工具的情况下轻松编辑保存,您只需要绘制),但我遇到了一个问题。 在某些情况下,我必须检查像素的精确颜色,并且我希望用户创建的bmp文件具有一些特定的rgb值 起初我认为我在文件读取代码中写了一些不正确的东西,然后我注意到问题出在其他地方 当我用paint(或其他程序)保存文件时,rgb值并没有保持与输入的完全相同 例如,(0,0,5)保存后变为(0,0,0),(200,0,0)变为(192,0,0)等等;因此,当我

我试图使用bmp文件作为数据存储(因为我的程序使用2d矩阵,这种方式可以在没有其他工具的情况下轻松编辑保存,您只需要绘制),但我遇到了一个问题。 在某些情况下,我必须检查像素的精确颜色,并且我希望用户创建的bmp文件具有一些特定的rgb值

起初我认为我在文件读取代码中写了一些不正确的东西,然后我注意到问题出在其他地方

当我用paint(或其他程序)保存文件时,rgb值并没有保持与输入的完全相同

例如,(0,0,5)保存后变为(0,0,0),(200,0,0)变为(192,0,0)等等;因此,当我阅读时,我期望得到5,而不是0

(我使用的是24位位图格式)

我该怎么做?
我能知道正在做什么改变颜色的计算,所以我可以在C++代码侧纠正它,或者我能做什么来让SaveFILE精确到0到255范围?BMP和JPEG是存储任何东西的糟糕的中间格式。我总是喜欢PNG或NETPBM……在我花了半天时间从BMP XD读取数据后,你有任何库或拷贝粘贴代码,可以将PNG文件读入C++中的RGBA/Matrix数组吗?我建议CImg。它是纯的、现代的C++、头文件和简单的。这里有4行加载2个PNG图像并将其中一个粘贴到另一个并保存结果。。。