java - 渲染 TIFF 文件时的 AWT-EventQueue-0
问题描述
我正在尝试在 java 中开发图像查看器,我的代码几乎适用于所有格式,但目前渲染图像,我正在使用下一个代码:
private ImageIcon scaleImage(int indice, int w, int h, boolean thumbnail) {
ImageIcon image = null;
ImageIO.setUseCache(false);
if(fileRefernces.get(indice).toLowerCase().endsWith("tif") || fileRefernces.get(indice).toLowerCase().endsWith("tiff") ) {
File initialImage = new File(fileRefernces.get(indice));
try {
BufferedImage bImage = ImageIO.read(initialImage);
image = new ImageIcon(bImage);
bImage.flush();
bImage = null;
} catch (IOException ex) {
//Logger.getLogger(ImageRender.class.getName()).log(Level.SEVERE, null, ex);
}
initialImage = null;
} else {
image = new ImageIcon(fileRefernces.get(indice));
}
int nw = image.getIconWidth();
int nh = image.getIconHeight();
if(nw > w) {
nw = w;
nh = (nw * image.getIconHeight()) / image.getIconWidth();
}
if(nh > h) {
nh = h;
nw = (image.getIconWidth() * nh) / image.getIconHeight();
}
System.gc();
return (thumbnail)
? new ImageIcon(image.getImage().getScaledInstance(nw, nh, Image.SCALE_FAST ))
: new ImageIcon(image.getImage().getScaledInstance(nw, nh, Image.DEFAULT));
}
但是,我在运行时收到下一个错误。
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at com.bog.company.render.ImageRender.scaleImage(ImageRender.java:815)
at com.bog.company.render.ImageRender.lambda$CargarDocumento$2(ImageRender.java:700)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source) Exception in thread "Thread-6" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at com.bog.company.render.ImageRender.scaleImage(ImageRender.java:815)
at com.bog.company.render.ImageRender.CompletarMiniaturas(ImageRender.java:752)
at com.bog.company.render.ImageRender.lambda$CargarDocumento$3(ImageRender.java:716)
at java.lang.Thread.run(Unknown Source) Exception in thread "AWT-EventQueue-0" Exception in thread "Thread-9" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at com.bog.company.render.ImageRender.scaleImage(ImageRender.java:815)
at com.bog.company.render.ImageRender.lambda$CargarDocumento$2(ImageRender.java:700)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source) java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at com.bog.company.render.ImageRender.scaleImage(ImageRender.java:815)
at com.bog.company.render.ImageRender.CompletarMiniaturas(ImageRender.java:752)
at com.bog.company.render.ImageRender.lambda$CargarDocumento$3(ImageRender.java:716)
at java.lang.Thread.run(Unknown Source) Exception in thread "Thread-10" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at com.bog.company.render.ImageRender.scaleImage(ImageRender.java:815)
at com.bog.company.render.ImageRender.CompletarMiniaturas(ImageRender.java:752)
at com.bog.company.render.ImageRender.lambda$CargarDocumento$3(ImageRender.java:716)
at java.lang.Thread.run(Unknown Source) Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at com.bog.company.render.ImageRender.scaleImage(ImageRender.java:815)
at com.bog.company.render.ImageRender.lambda$CargarDocumento$2(ImageRender.java:700)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source) Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at com.bog.company.render.ImageRender.scaleImage(ImageRender.java:815)
at com.bog.company.render.ImageRender.lambda$CargarDocumento$2(ImageRender.java:700)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source) Exception in thread "Thread-11" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at com.bog.company.render.ImageRender.scaleImage(ImageRender.java:815)
at com.bog.company.render.ImageRender.CompletarMiniaturas(ImageRender.java:752)
at com.bog.company.render.ImageRender.lambda$CargarDocumento$3(ImageRender.java:716)
at java.lang.Thread.run(Unknown Source)
但是,tif 图像会发生这种情况。有人对如何解决它有想法吗?
解决方案
推荐阅读
- odata - 具有 OnPremise 数据网关的 Dataverse 虚拟表
- quarkus - Quarkus Native with Hibernate Spatial — org.postgresql.sspi.SSPIClient 失败
- python - Django Queryset 上的 Python dict 理解
- php - 根据文章标签在特色图片顶部添加图标
- python - 将多个列表压缩在一起
- android - 试图理解 Theme.MaterialComponents
- javascript - 错误:操作必须是普通对象。相反,实际的类型是:'Promise'
- python - 我有日期的数据框和列看起来像
- javascript - 如何使用 mongoose virtual 根据文档编号自动生成自定义代码
- swift - Pod 安装失败