日期:2014-05-20  浏览次数:20827 次

这个异常是什么意思??求大神指教
Uncaught error fetching image:
java.lang.ClassCastException: [I cannot be cast to [B
at java.awt.image.ColorModel.getAlpha(ColorModel.java:833)
at java.awt.image.ColorModel.getRGB(ColorModel.java:878)
at sun.awt.image.ImageRepresentation.convertToRGB(ImageRepresentation.java:305)
at sun.awt.image.ImageRepresentation.setPixels(ImageRepresentation.java:564)
at java.awt.image.AreaAveragingScaleFilter.accumPixels(AreaAveragingScaleFilter.java:213)
at java.awt.image.AreaAveragingScaleFilter.setPixels(AreaAveragingScaleFilter.java:252)
at java.awt.image.CropImageFilter.setPixels(CropImageFilter.java:138)
at sun.awt.image.ImageDecoder.setPixels(ImageDecoder.java:126)
at sun.awt.image.PNGImageDecoder.sendPixels(PNGImageDecoder.java:558)
at sun.awt.image.PNGImageDecoder.produceImage(PNGImageDecoder.java:478)
at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:269)
at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:205)
at sun.awt.image.ImageFetcher.run(ImageFetcher.java:169)


------解决方案--------------------
[I cannot be cast to [B

你Integer[]转Byte[]了??
------解决方案--------------------
类型转换错误,图片的转换有问题,解决的方法从给的异常找不到
------解决方案--------------------
参数不和规范。
RGB类型的数据表示颜色,其实是采用三原色方案,三种原始色彩,每种色彩用数字0~255表示颜色的深度。
这样,RGB(红绿蓝)表示颜色,实际上是由三个字节(3byte)的字节数组来表示一个像素点的颜色的。

我不太清楚楼主时间操作中,调用哪个方法抛出的这个Error,
但是,可以确认的是,那个方法的参数,不能转换成3byte的数组。

例如,如果参数是三个整形的数据,那么,这三个整数,它的范围必须在0~255之间,
如果某个参数超过这个范围,就会抛出这个Error。
在例如,如果参数是一个整形数据,(因为,一个整形数据,在内存中是由4个字节来表示的,
所以,采用四个字节中的三个字节表示RGB颜色,也是可行的)
那么,这个整数范围必须在0~16777215之间。如果超出这个范围,就会抛出这个Error。