在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

上,我现在完全是一个人。