○在Windows中显示多幅彩色图像的技术
int i,j,n;
FILE *fp;
fp=fopen(fname,rb+);
if (fp==NULL) return NULL;
fseek(fp,18L,SEEK-SET);
fread(&width,2,1,fp);fseek(fp,2L,SEEK-CUR);
fread(&depth,2,1,fp);fseek(fp,2L,SEEK-CUR);
n=width/4;
if (width%4 !=0) n++;
bytes=n*4;
fseek(fp,54L,SEEK-SET);
fread(&palette[0][0],4,256,fp);
return fp;
}
/*该函数实现颜色的压缩*/
void zh_fan-tu(FILE *fp,int color1,int color2)
{
unsigned char *p,*q,cc,ch;
long len;
int max-no, i,j,m,n,r0,b0,g0,r1,b1,g1;
double dd,dmin;
char s[4];
max-no=color2-color1+1;
for (i=0;i=width) break;
else {
ch=(unsigned char)*q;
TAB[ch]++;
}
}
for (i=0;i=color1;i--)
memcpy(&palette[0],&palette[i-color1][0],4);
for (i=0;idd) {dmin=dd;m=j;}
}
BB[TT]=(unsigned char)m;
}
for (i=0;i
转自: 仅仅学术交流与学习之用,非商业之目的.
Tags:
作者:佚名评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论