同じ画像を 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);
}
}