我使用eclipse和pydev构建了一个Jython swing应用程序。我为所有按钮的背景使用简单的图像。大多数情况下,一切都很好。但是在5%的时间里,在屏幕上添加或删除内容时,会出现以下情况:
Exception in thread "AWT-EventQueue-0" at com.sun.imageio.plugins.png.PNGImageReader.readImage(PNGImageReader.java:1310)
at com.sun.imageio.plugins.png.PNGImageReader.read(PNGImageReader.java:1579)
at javax.imageio.ImageIO.read(ImageIO.java:1438)
at javax.imageio.ImageIO.read(ImageIO.java:1342)
at sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
javax.imageio.IIOException: javax.imageio.IIOException: Error reading PNG image data
令人沮丧的是,这个问题不容易复现,并且可能发生在我绘制PNG的应用程序的任何地方。我当然可以捕获异常并重新导入图像,但我希望找出根本原因。
我这样调用资源:
notPressed = ImageIO.read(pkg_resources.resource_stream('images', "button-blue.png")).getScaledInstance(width,height, Image.SCALE_SMOOTH )
我唯一的猜测是,有时候pkg_resources可能无法打开文件流,从而导致异常。您有没有任何关于如何追踪此问题的建议,或者我应该高兴地接受它已经安静地失败了?
ImageIO.read()
? - trashgod