我试图弄清楚如何拍摄图像并使用 Graphics2D 来操作它,同时能够对同一图像执行多个操作(因此将其变暗两次会使它比一次变暗)。我发现的每一个例子都是为了处理一次图像并显示它。我需要能够多次显示图像。例如,假设我有一个带有选项 1、2、3 等的菜单,1 将其变暗,2 将其变亮,3 显示图像。
我将如何实现这一目标?我可以获取图像,将其变暗,旋转并显示它,但不能通过菜单或其他用户选择何时何地的方式。如果有人可以将我链接到一个可以做到这一点的网页,或者写一个简短的(越短越好)一个类程序来做我所描述的,我应该能够开始。
基本上,我需要能够做这样的事情:
initialize image;
display(image);
lighten(image);
我不明白的是,我如何使用 Graphics2D 操作图像,并将其应用于我的图像。
这是我到目前为止所拥有的(主要来自这里):
import java.awt.*;
import javax.swing.*;
@SuppressWarnings("serial")
public class ShowImage extends JPanel {
Image img;
public ShowImage() {
super();
img = Toolkit.getDefaultToolkit().getImage("image.png");
}
public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.translate(170, 0);
g2d.rotate(1);
g2d.drawImage(img, 0, 0, this);
}
public static void main(String arg[]) {
JFrame frame = new JFrame("Image Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 400);
ShowImage panel = new ShowImage();
frame.setContentPane(panel);
frame.setVisible(true);
}
}
目前,我正在paintComponent() 中进行所有操作,因此操作起来一点也不轻松。有没有办法在 main 中设置 Graphics2D 变量,然后以某种方式将其放入 paintComponent() 中?我完全不知道该怎么做。
我试图发布我查看过的所有网页的链接,但它不会让我发布两个以上的链接,因为我是新手。