试试强制类型转换colorTable[(int)(pix[i])]++;

解决方案 »

  1.   

    试过,没用。我的测试图片左下角的点是白色的。
    java.lang.ArrayIndexOutOfBoundsException: -1
      

  2.   

    读出的pix[i]当然可能是负值,因为是字节呀,范围-128 - 127
    解决办法很简单,判断一下,大于0的不动,小于0的加上256就可以不知道你是怎么读BMP文件,如果你是用io读出二进制自己分析的话,那告诉你,你这种读法有问题:像素点的个数通常情况是大于nwidth*nheight的(因为每一行图像需要用4个字节的整数倍来储存,除非你的图像的宽度是4的倍数,否则是要补几个字节的).你还是找点BMP的资料研究一下为好!
      

  3.   

    你的colorTable是256的数组吧? 你的图片左下角的点本来是什么颜色的?这可是一开始读的数据。如果颜色不对的话,可能是没有读取这里的数据就是skip跳得太过了
      

  4.   

    我已经解决了。方法和 Eraserpro(穷...哪位好人拿钱砸我吧!!!) 的差不多。多谢各位关注。接分:)