关于C语言问题,悬赏100个财富值。只要参与讨论或者给意见,都给予一定的悬赏。

用C语言写个应用程序(命令行运行的就行)提取24bit bmp图像数据,以RGB888保存成图像数组。

typedef struct IMAGE_TYP
{
long width;
long height;
long offset;
long numberBytes;
long bpp;
unsigned char *pixelData;
unsigned char *tempBuffer;

} IMAGE, *IMAGE_PTR;

void CovertRgb24ToRgb888 ( IMAGE_PTR srcImage, IMAGE_PTR destImage )
{
for ( int y = 0; y <= srcImage->height; y++ )
{
for ( int x = 0; x <= srcImage->width; x++ )
{
unsigned char blue = srcImage->pixelData[y*srcImage->offset + x*3 + 0],
green = srcImage->pixelData[y*srcImage->offset + x*3 + 1],
red = srcImage->pixelData[y*srcImage->offset + x*3 + 2];

destImage->pixelData[y*srcImage->offset + x*3 + 0] = red;
destImage->pixelData[y*srcImage->offset + x*3 + 1] = green;
destImage->pixelData[y*srcImage->offset + x*3 + 2] = blue;

}// End For

}// End For
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-08
你知道转码规则么?知道转码规则的话,就剩下读写二进制文件了吧好像?这方面我也不熟悉追问

问题是我也不是很清楚呀。愁……

追答

你这需求是哪里提出来的?不对我刚才的描述错了,好像是让你把一个位图里的颜色数据以RGB888的形式表示成数组,我刚看成让你转成另外格式的图像了。
你得要知道如何对bmp文件解码,另外还要了解RGB888的意思,这些去google或者baidu吧

追问

RGB就是红色,绿色和蓝色。888的意识是三个2的八次方相乘中颜色。

追答

既然你了解RGB888,那就剩下如何对bmp文件解码啦,这种资料在网上应该好搜索吧。
http://wenku.baidu.com/view/9cb9c9305a8102d276a22fe7.html

第2个回答  2012-02-09
不会啊。。。我是被题目吸引的。。。我想要悬赏。。弱弱的。。。可以不。。。
相似回答