Changing brightness in bufferedImage with DataBufferInt
Posted
by
user2958025
on Stack Overflow
See other posts from Stack Overflow
or by user2958025
Published on 2013-11-05T21:52:25Z
Indexed on
2013/11/05
21:53 UTC
Read the original article
Hit count: 208
I must read some image and then I have to change brightness and contrast of this image I create main class and constructor where are panels, sliders and other stuff, I added changeListener to slider to take current value. My imagePanel is new Object of that class:
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);
}
}
This is my load button
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");
}
}
}
And now I want to create class where I will change that brightness. I have to use but I don't know how to use that thing:
BufferedImage(256, 256, Bufferedmage.TYPE_INT_RGB)
and to get each pixel of image I need to do something like:
int rgb []=((DataBufferInt)img.getRaster().getDataBuffer()).getData();
And here I is next problem: How can I change the value of each r,g,b and show that new image on my panel
© Stack Overflow or respective owner