いくつかの画像を読み取る必要があり、次にこの画像の明るさとコントラストを変更する必要があります。パネル、スライダー、その他のものがあるメインクラスとコンストラクターを作成し、changeListener をスライダーに追加して現在の値を取得します。私のimagePanelはそのクラスの新しいオブジェクトです:
public class Obrazek extends JPanel{
public static BufferedImage img = null;
public Obrazek() {
super();
try {
img = ImageIO.read(new File("D:\\ja.jpg"));
} catch (IOException e) {}
}
@Override
public void paint(Graphics g) {
g.drawImage(img, 0, 0, null);
}
}
これは私のロードボタンです
private void przyciskWczytaj(java.awt.event.ActionEvent evt) {
int odpowiedz = jFileChooser1.showOpenDialog(this);
if (odpowiedz == jFileChooser1.APPROVE_OPTION) {
File file = jFileChooser1.getSelectedFile();
try {
BufferedImage im = ImageIO.read(new File(file.getAbsolutePath()));
Obrazek.img = im;
} catch (IOException ex) {
System.out.println("Error");
}
}
}
そして今、その明るさを変更するクラスを作成したいと思います。使用する必要がありますが、その使用方法がわかりません:
BufferedImage(256, 256, Bufferedmage.TYPE_INT_RGB)
画像の各ピクセルを取得するには、次のようにする必要があります。
int rgb []=((DataBufferInt)img.getRaster().getDataBuffer()).getData();
ここで次の問題があります: 各 r、g、b の値を変更して、その新しい画像をパネルに表示するにはどうすればよいですか?