0

我创建了一个桌面应用程序,我可以在其中打开相同的图像在两个internalFrames 中。我需要在应用程序中将其中一张图像更改为灰度。

我的尝试如下所示。当我单击文件菜单中的按钮时,我需要一张内部帧图像作为原始图像,另一张是灰度图像。

GuiPanelImage(File fileName) {
     width = GuiPanelImage.WINDOW_WIDTH;

     height = GuiPanelImage.WINDOW_HEIGHT;

    try {
        BufferedImage inputImage = ImageIO.read(fileName); 

        outputImage = new BufferedImage(inputImage.getWidth(),
          inputImage.getHeight(), BufferedImage.TYPE_INT_ARGB);
// I can replace .TYPE_INT_ARGB with .TYPE_BYTE_GRAY to convert to grayscale

        picture = new ImageIcon(fileName.getPath());

        Graphics2D g2d = ( Graphics2D) outputImage.createGraphics();

        g2d.drawImage(inputImage, 0, 0, null); 
    } 
    catch (IOException ex) {
        Logger.getLogger(GuiPanelImage.class.getName()).log(Level.SEVERE,
          null, ex);
    }             
}
4

3 回答 3

1

为什么你不能只做以下事情?

outputImage1 = new BufferedImage(inputImage.getWidth(), inputImage.getHeight(), BufferedImage.TYPE_INT_ARGB);
outputImage2 = new BufferedImage(inputImage.getWidth(), inputImage.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
于 2013-03-29T14:23:05.010 回答
1

PictureFrame说明如何在JInternalFrame.

内部框架

ColorConvertOp在这里进行了说明,并与此处的禁用图像进行了比较

灰色图标

于 2013-03-29T17:30:50.043 回答
0

尝试使用光栅函数扫描输入并为其创建和输出目录

于 2013-04-02T06:06:28.380 回答