在java中使用ColorConvertOp后setRGB失败
我正试图用这种方法将我的图像转换成灰度在java中使用ColorConvertOp后setRGB失败,java,Java,我正试图用这种方法将我的图像转换成灰度 private void GSActionPerformed(java.awt.event.ActionEvent evt) { BufferedImage temp = showing; //showing is a varible that store my temp img. int[][] data = getData(temp); // getD
private void GSActionPerformed(java.awt.event.ActionEvent evt) {
BufferedImage temp = showing; //showing is a varible that store my temp img.
int[][] data = getData(temp); // getData() give me a 2d array that has images coordinate and default RGB color model (TYPE_INT_ARGB).
ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_GRAY);
ColorConvertOp op = new ColorConvertOp(cs, null);
temp = op.filter(temp, null);
BufferedImage newImage = temp;
picDisplay.setIcon(new ImageIcon(newImage));
picDisplay.updateUI();
showing = newImage;
}
使用此方法后,我的img会变为灰度,这很好,但当我使用另一种方法(如翻转img)时,它会给我带来很多错误:
线程AWT-EventQueue-0 java.lang.NullPointerException中出现异常
位于java.awt.image.ComponentColorModel.getDataElementsComponentColorModel.java:1555
位于java.awt.image.BufferedImage.setRGBBufferedImage.java:988
在photoshop.GUI.VFActionPerformedGUI.java:213
在photoshop.GUI.access$700GUI.java:13
在photoshop.GUI$8.ActionPerformeGUI.java:113
在javax.swing.AbstractButton.fireActionPerformedAbstractButton.java:2018
位于javax.swing.AbstractButton$Handler.actionPerformedAbstractButton.java:2341
位于javax.swing.DefaultButtonModel.fireActionPerformedDefaultButtonModel.java:402
在javax.swing.DefaultButtonModel.setPressedDefaultButtonModel.java:259
位于javax.swing.AbstractButton.doClickAbstractButton.java:376
位于javax.swing.plaf.basic.BasicMenuItemUI.doClickBasicMenuItemUI.java:833
java:877
位于java.awt.Component.processMouseEventComponent.java:6505
javax.swing.JComponent.processMouseEventJComponent.java:3321
位于java.awt.Component.processEventComponent.java:6270
在java.awt.Container.processEventContainer.java:2229
位于java.awt.Component.dispatchEventImplComponent.java:4861
位于java.awt.Container.dispatchEventImplContainer.java:2287
位于java.awt.Component.dispatchEventComponent.java:4687
位于java.awt.LightweightDispatcher.retargetMouseEventContainer.java:4832
位于java.awt.LightweightDispatcher.processMouseEventContainer.java:4492
位于java.awt.LightweightDispatcher.dispatchEventContainer.java:4422
位于java.awt.Container.dispatchEventImplContainer.java:2273
在java.awt.Window.dispatchEventImplWindow.java:2719
位于java.awt.Component.dispatchEventComponent.java:4687
在java.awt.EventQueue.dispatchEventImplEventQueue.java:729
在java.awt.EventQueue.access$200EventQueue.java:103
在java.awt.EventQueue$3.runEventQueue.java:688
在java.awt.EventQueue$3.runEventQueue.java:686
位于java.security.AccessController.doPrivilegeEdNative方法
java.security.ProtectionDomain$1.doIntersectionPrivilegeProtectionDomain.java:76
java.security.ProtectionDomain$1.doIntersectionPrivilegeProtectionDomain.java:87
在java.awt.EventQueue$4.runEventQueue.java:702
在java.awt.EventQueue$4.runEventQueue.java:700
位于java.security.AccessController.doPrivilegeEdNative方法
java.security.ProtectionDomain$1.doIntersectionPrivilegeProtectionDomain.java:76
在java.awt.EventQueue.dispatchEventQueue.java:699
位于java.awt.EventDispatchThread.pumpOneEventForFiltersEventDispatchThread.java:242
在java.awt.EventDispatchThread.pumpEventsForFilterEventDispatchThread.java:161
在java.awt.EventDispatchThread.PumpeEventsForHierarchyEventDispatchThread.java:150
在java.awt.EventDispatchThread.pumpEventsEventDispatchThread.java:146
在java.awt.EventDispatchThread.pumpEventsEventDispatchThread.java:138
在java.awt.EventDispatchThread.runEventDispatchThread.java:91上,我现在完全是一个人。