case 5: mixIndex = mixIndex<<2; mixIndex = mixIndex>>7; break; case 6: mixIndex = mixIndex<<1; mixIndex = mixIndex>>7; break; case 7: mixIndex = mixIndex>>7; break; } //将像素数据保存到数组中对应的位置 dataOfBmp[index].rgbRed = pRgb[mixIndex].rgbRed; dataOfBmp[index].rgbGreen = pRgb[mixIndex].rgbGreen; dataOfBmp[index].rgbBlue = pRgb[mixIndex].rgbBlue; dataOfBmp[index].rgbReserved = pRgb[mixIndex].rgbReserved; index++; } }
if(bitInfoHead.biBitCount==2){ for(int i=0;i
} }
if(bitInfoHead.biBitCount == 4){ for(int i=0;i 29 k = i*l_width + j/2; mixIndex = pColorData[k]; if(j%2==0){//低 mixIndex = mixIndex<<4; mixIndex = mixIndex>>4; } else{//高 mixIndex = mixIndex>>4; } dataOfBmp[index].rgbRed = pRgb[mixIndex].rgbRed; dataOfBmp[index].rgbGreen = pRgb[mixIndex].rgbGreen; dataOfBmp[index].rgbBlue = pRgb[mixIndex].rgbBlue; dataOfBmp[index].rgbReserved = pRgb[mixIndex].rgbReserved; index++; } } if(bitInfoHead.biBitCount == 8){ for(int i=0;i if(bitInfoHead.biBitCount == 16){ for(int i=0;i 30 } zuocnt = 0; youcnt = 0; for(unsigned int i=width*height;i>0;i--){ if(i % width == 0){ if((unsigned char)dataOfBmp[i].rgbRed<=0x7F){ if(shangcizuo == 0){ shangcizuo = (i/width); zuo[zuocnt++] = (unsigned int)(i/width); //zuozhizhen++; }else{ if(shangcizuo-1 == (i/width)){ shangcizuo--; }else{ zuo[zuocnt++] = (unsigned int)(i/width); shangcizuo = (unsigned int)(i/width); //zuozhizhen++; } } } } if(i % width == (width - 1)){ if((unsigned char)dataOfBmp[i].rgbRed<=0x7F){ if(shangciyou == 0){ shangciyou = (i/width); you[youcnt++] = (unsigned int)(i/width); //zuozhizhen++; }else{ if(shangciyou-1 == (i/width)){ shangciyou--; }else{ you[youcnt++] = (unsigned int)(i/width); shangciyou = (unsigned int)(i/width); //zuozhizhen++; } } } } } zuocnt = 0; youcnt = 0; putchar(0x0a); for(i=0;i<100;i++){ printf(\ \} putchar(0x0a); for(i=0;i<100;i++){ printf(\ \} //showBmpInforHead(&bitInfoHead); fclose(pfile); fclose(put); if (bitInfoHead.biBitCount<24) { free(pRgb); 31 } free(dataOfBmp); free(pColorData); printf(\} unsigned char findone(){ unsigned int i,j; for(i=0;i<19;i++){ for(j=0;j<100;j++){ if(zuoshuzu[i][j]!=0){ break; } } if(j == 100){ //break; return i; } } if(i == 19){ return 0xFF; } } unsigned char findlast(){ unsigned int i,j; for(i=0;i<19;i++){ for(j=0;j<100;j++){ if(youshuzu[i][j]!=0){ break; } } if(j == 100){ //break; return i; } } if(i == 19){ return 0xFF; } } unsigned char cmp(unsigned char a,unsigned char b){ unsigned int i,j; unsigned int cmpcnt=0,pipeicnt=0; for(i=0;i<100;i++){ if(youshuzu[a][i]==0){ printf(\ return (unsigned char)(((double)pipeicnt/(double)cmpcnt) * 100); }else{ cmpcnt++; } for(j=0;j<100;j++){ if(fabs(youshuzu[a][i] - zuoshuzu[b][j]) <=1){ pipeicnt++; break; } } } printf(\ 32 return (unsigned char)(((double)pipeicnt/(double)cmpcnt) * 100); } void main(){ unsigned int i,j; unsigned char temp=0,temp1=0,zuiyou=0; strcpy(strFile,\ initfile(zuoshuzu[0],youshuzu[0]); strcpy(strFile,\ initfile(zuoshuzu[1],youshuzu[1]); strcpy(strFile,\ initfile(zuoshuzu[2],youshuzu[2]); strcpy(strFile,\ initfile(zuoshuzu[3],youshuzu[3]); strcpy(strFile,\ initfile(zuoshuzu[4],youshuzu[4]); strcpy(strFile,\ initfile(zuoshuzu[5],youshuzu[5]); strcpy(strFile,\ initfile(zuoshuzu[6],youshuzu[6]); strcpy(strFile,\ initfile(zuoshuzu[7],youshuzu[7]); strcpy(strFile,\ initfile(zuoshuzu[8],youshuzu[8]); strcpy(strFile,\ initfile(zuoshuzu[9],youshuzu[9]); strcpy(strFile,\ initfile(zuoshuzu[10],youshuzu[10]); strcpy(strFile,\ initfile(zuoshuzu[11],youshuzu[11]); strcpy(strFile,\ initfile(zuoshuzu[12],youshuzu[12]); strcpy(strFile,\ initfile(zuoshuzu[13],youshuzu[13]); strcpy(strFile,\ initfile(zuoshuzu[14],youshuzu[14]); strcpy(strFile,\ initfile(zuoshuzu[15],youshuzu[15]); strcpy(strFile,\ initfile(zuoshuzu[16],youshuzu[16]); strcpy(strFile,\ initfile(zuoshuzu[17],youshuzu[17]); strcpy(strFile,\ initfile(zuoshuzu[18],youshuzu[18]); printf(\第一张图片:%d \ printf(\最后第一张图片:%d\ putchar(0x0a); for(i=0;i<19;i++){ temp = temp1 = zuiyou = 0; for(j=0;j<19;j++){ temp = cmp(i,j); if(temp > temp1){ temp1 = temp; zuiyou = j; } } printf(\最优:%%%d,%d\ putchar(0x0a); 33