我创建了一个使用RGB值创建BMP图像的功能。
RGB值存储为浮点数,范围从0.0到1.0。
将值写入BMP文件时,它们的范围必须介于0到255.0之间,因此我将浮点数乘以255.0
他们还需要是未签名的字符。 编辑:除非你们中的一个人能想到更好的类型。
基本上我所做的就是这个
unsigned char pixel[3]
//BMP Expects BGR
pixel[0] = image.b*255.0;
pixel[1] = image.g*255.0;
pixel[2] = image.r*255.0;
fwrite(&pixel, 1, 3, file);
image.r是浮点数。
转换中似乎存在某种数据丢失,因为图像的某些部分在不应该出现时是黑色的。
BMP图像设置为每像素24位
我打算发布图片,但我没有足够的声誉。
编辑: BMP图像 http://tinypic.com/r/2qw3cdv/8
PRINTSCREEN http://tinypic.com/r/2q3rm07/8
基本上浅蓝色部分变黑。
如果我乘以128而不是图像更暗但准确。它开始变得奇怪180左右