[英]C Read colors from Bitmap
我正在加载像素的颜色并写入一个一字节的变量。 当我想读取该颜色(红色像素)时,应该得到以下结果:255但是,值是:4294967296。由此可见,该值已记录在32字节变量中。 为什么会这样?
struct RGBpix{
char R;
char G;
char B;
}typedef RGB;
...
RGB **data=(RGB **)malloc(sizeof(RGB *)*Picture.biWidth);
for(i = 0; i < Picture.biWidth; i++){
data[i] = (RGB*) malloc(sizeof(RGB) *Picture.biHeight);
}
...
for(i=0;i<Picture.biWidth;i++){
for(j=0;j<Picture.biHeight;j++){
fread(&data[i][j].R, 1, 1,bmpFile);
fread(&data[i][j].G, 1, 1,bmpFile);
fread(&data[i][j].B, 1, 1,bmpFile);
}
}
printf("%Ld", data[0][1].R);
char
在您的计算机上似乎是签名类型。 使用unsigned char
避免符号扩展。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.