【发布时间】:2015-07-02 23:56:43
【问题描述】:
我正在尝试弄清楚如何拍摄图像并使用 Graphics2D 对其进行操作,同时能够对同一图像执行多项操作(因此将其变暗两次会使它比一次变暗)。我发现的每一个例子都是为了处理一次图像并显示它。我需要能够多次显示图像。例如,假设我有一个包含选项 1、2、3 等的菜单,1 将其变暗,2 将其变亮,3 显示图像。
我将如何实现这一目标?我可以获取图像,将其变暗,旋转并显示它,但不能通过菜单或其他用户选择何时何地的方式。如果有人可以将我链接到一个可以做到这一点的网页,或者写一个简短的(越短越好)一个类程序来做我描述的事情,我应该可以开始了。
基本上,我需要能够做这样的事情:
initialize image;
display(image);
lighten(image);
我不明白的是,我如何使用 Graphics2D 操作图像,并将其应用于我的图像。
这是我目前所拥有的(主要来自here):
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() 中?我完全不知道该怎么做。
我尝试发布我查看过的所有网页的链接,但它不允许我发布超过两个链接,因为我是新手。
【问题讨论】:
标签: java image graphics2d