【发布时间】:2014-12-13 09:45:33
【问题描述】:
我正在尝试访问使用ImageIO.read(filePath) 从文件加载的BufferedImage 中的像素,但我得到此错误:
Exception in thread "Game" java.lang.ClassCastException: java.awt.image.DataBufferByte cannot be cast to java.awt.image.DataBufferInt
at com.package.graphics.Texture.<init>(Texture.java:29)
at com.package.graphics.Texture.loadTexture(Texture.java:40)
at com.package.Game.run(Game.java:71)
at java.lang.Thread.run(Unknown Source)
在代码中,错误所在的行在构造函数中,如下所示:
// Get the pixel array from the BufferedImage
this.pixels = ((DataBufferInt) image.getRaster().getDataBuffer()).getData();
据我了解,BufferedImage 不是BufferedImage.TYPE_INT_RGB 或BufferedImage.TYPE_INT_ARGB 类型。因为我在游戏的其余部分使用这些类型,所以我想知道是否有办法将加载的图像从加载的类型“转换”为另一种类型。
就我而言,我想将图像类型转换为BufferedImage.TYPE_INT_ARGB。
【问题讨论】:
标签: java type-conversion bufferedimage javax.imageio