如何从BMP文件里提取色彩表并显示出来

PMsg 2006-06-01 03:39:09
打开一个256色的BMP文件显示
并提取文件的色彩表 显示成条状

根据对色彩表上 颜色的修改,使打开图片同时变颜色 类似调色板吧
...全文
360 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ssbelle 2006-06-02
  • 打赏
  • 举报
回复
我是把调色板的数据显示在表格里 然后修改表格的数值 图像就会相应的改变
你自己看程序自己改就好了
ssbelle 2006-06-02
  • 打赏
  • 举报
回复
楼主给我发信 我写了一个程序 只要你把数据画成彩虹条就可以了
我实在不知道你的彩虹条是什么意思
给我发信 我会传给你
orangecnnps@gmail.com
PMsg 2006-06-01
  • 打赏
  • 举报
回复
malloc...
怎么连C的东西都..
lixiaosan 2006-06-01
  • 打赏
  • 举报
回复
FILE *fp;
unsigned char **p_uiPalette;
int nBit, nColor;
int i;

fp = fopen("c:\\1.bmp", "rb");

fseek(fp, 10, SEEK_SET);
fseek(fp, 18, SEEK_SET);
fseek(fp, 28, SEEK_SET);

if (nBit == 1) nColor = 2;
if (nBit == 4) nColor = 16;
if (nBit == 8) nColor = 256;

p_uiPalette = (unsigned char **)malloc(nColor*sizeof(unsigned char*));
for(i=0; i<nColor; i++)
p_uiPalette[i] = (unsigned char*)malloc[3];

fseek(fp, 54, SEEK_SET);
for(i=0; i<nColor; i++)
{
p_uiPalette[i][2] = fgetc(fp); //blue
p_uiPalette[i][1] = fgetc(fp); //green
p_uiPalette[i][0] = fgetc(fp); //red
}
fclose(fp);

for(i=0; i<nColor; i++)
free(p_uiPalette[i]);
free(p_uiPalette);
p_uiPalette = NULL;



读调色版大概是这个样子。。改的话自己看着办。。
PMsg 2006-06-01
  • 打赏
  • 举报
回复
我是想把颜色表显示成条状 (就像彩虹条)

然后改颜色表条里的颜色 修改相应BMP
thisisll 2006-06-01
  • 打赏
  • 举报
回复
这个很简单啊
你直接把调色板读出来显示,然后只要改调色板就好了

http://www.vckbase.com/document/viewdoc/?id=674
PMsg 2006-06-01
  • 打赏
  • 举报
回复
en 结构我也知道
typedef struct tagRGBQUAD { /* rgbq */
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved;
} RGBQUAD;


有没有类似的例子,显示8位位图 并显示其色彩表 然后通过修改色彩表使位图变色的
100份不够 可以再给
lixiaosan 2006-06-01
  • 打赏
  • 举报
回复
8位位图其实用的是调色版,把调色版数据依次读出即可

不过注意,顺序是BGR,不是RGB

19,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧