Java PNG 异常
Java PNG Exception
在我工作的 java 应用程序中,我在 GUI 中使用了几个 PNG 文件作为图标。这有效,没有功能问题,但是当启动到应用程序时开始出现异常。异常的数量在 0 到 50 之间变化(都一样),我找不到问题,也不是模式。
我用于图像的代码:
static URL imageIcon = DebugPlot.class.getResource("/myIcon.png");
static ImageIcon icon = new ImageIcon(imageIcon);
异常:
Uncaught error fetching image:
java.lang.ClassCastException: [I cannot be cast to [B
at java.awt.image.ColorModel.getAlpha(ColorModel.java:838)
at java.awt.image.ColorModel.getRGB(ColorModel.java:883)
at sun.awt.image.ImageRepresentation.convertToRGB(ImageRepresentation.java:305)
at sun.awt.image.ImageRepresentation.setPixels(ImageRepresentation.java:569)
at java.awt.image.AreaAveragingScaleFilter.accumPixels(AreaAveragingScaleFilter.java:213)
at java.awt.image.AreaAveragingScaleFilter.setPixels(AreaAveragingScaleFilter.java:252)
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)
我用谷歌搜索但找不到解决方案,有人知道这个问题吗?或者我应该如何加载图像以防止这些异常发生?
这似乎是 2003 年以来的已知错误,但仍未解决:
您尝试过 BufferedImage
和 ImageIO
:
BufferedImage img = null;
try {
// Here set the path to your image
img = ImageIO.read(new File("myIcon.png"));
} catch (IOException e) {}
ImageIcon icon = new ImageIcon(img);
在我工作的 java 应用程序中,我在 GUI 中使用了几个 PNG 文件作为图标。这有效,没有功能问题,但是当启动到应用程序时开始出现异常。异常的数量在 0 到 50 之间变化(都一样),我找不到问题,也不是模式。
我用于图像的代码:
static URL imageIcon = DebugPlot.class.getResource("/myIcon.png");
static ImageIcon icon = new ImageIcon(imageIcon);
异常:
Uncaught error fetching image:
java.lang.ClassCastException: [I cannot be cast to [B
at java.awt.image.ColorModel.getAlpha(ColorModel.java:838)
at java.awt.image.ColorModel.getRGB(ColorModel.java:883)
at sun.awt.image.ImageRepresentation.convertToRGB(ImageRepresentation.java:305)
at sun.awt.image.ImageRepresentation.setPixels(ImageRepresentation.java:569)
at java.awt.image.AreaAveragingScaleFilter.accumPixels(AreaAveragingScaleFilter.java:213)
at java.awt.image.AreaAveragingScaleFilter.setPixels(AreaAveragingScaleFilter.java:252)
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)
我用谷歌搜索但找不到解决方案,有人知道这个问题吗?或者我应该如何加载图像以防止这些异常发生?
这似乎是 2003 年以来的已知错误,但仍未解决:
您尝试过 BufferedImage
和 ImageIO
:
BufferedImage img = null;
try {
// Here set the path to your image
img = ImageIO.read(new File("myIcon.png"));
} catch (IOException e) {}
ImageIcon icon = new ImageIcon(img);