同じ画像に対して複数の操作を実行しながら、画像を取得して Graphics2D を使用して操作する方法を見つけようとしています (したがって、2 回暗くすると、1 回行うよりも暗くなります)。私が見つけたすべての例は、画像を一度操作して表示することを目的としています。画像を複数回表示できるようにする必要があります。たとえば、オプション 1、2、3 などのメニューがあり、1 で暗くし、2 で明るくし、3 で画像を表示するとします。
どうすればこれを達成できますか?画像を取得し、暗くし、回転させて表示することはできますが、ユーザーがいつ、何を選択するかをメニューやその他の方法で指定することはできません。誰かがそれを行うウェブページに私をリンクしてくれたり、私が説明したことを実行するための短い (短い方が良い) 1 つのクラス プログラムを書いてくれたりしたら、私は始めることができるはずです。
基本的に、次のようなことができる必要があります。
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() で行っているため、操作が簡単ではありません。Graphics2D 変数をメインに設定し、それを paintComponent() に何らかの方法で取得する方法はありますか? これをどのように行うかについて、私は完全に迷っています。
表示したすべての Web ページへのリンクを投稿しようとしましたが、新しいので 2 つ以上のリンクを投稿できません。