0

同じ画像を 2 秒で開くことができるデスクトップ アプリケーションを作成しましたinternalFrame。これらの画像の 1 つをアプリケーション内でグレースケールに変更する必要があります。

これを行う私の試みを以下に示します。ファイル メニューのボタンをクリックすると、1 つの内部フレーム イメージが元のイメージになり、もう 1 つがグレースケールになる必要があります。

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 に答える