598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
|
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
|
-
+
|
pic->size=buf[15];
memset(pic->data+pic->size,0,pic->size);
}
q=pic->data+pic->size;
for(y=0;y<pic->size;y++) for(x=0;x<pic->size;x++) {
fread(buf,1,8,fp);
if(buf[6]&0x80) {
for(i=1;i<255;i++) if(buf[0]==pal[i].r && buf[1]==pal[i].g && buf[2]==pal[i].b) goto found;
for(i=1;i<255;i++) if(buf[0]==pal[i].r && buf[2]==pal[i].g && buf[4]==pal[i].b) goto found;
i=1;
a=0x300000;
for(j=1;j<255;j++) {
b=abs(buf[0]-pal[j].r)+abs(buf[2]-pal[j].g)+abs(buf[4]-pal[j].b);
if(b<=a) a=b,i=j;
}
found: *q++=i;
|