Este nuevo proyecto consta de un jButton, un jPanel y una imagen cualquiera (.png).
Este ejemplo es parecido al anterior pero cargando la imagen con "BufferedImage", para luego crear un "filtro" mediante modificación del color de pixeles de la imagen.
Codigo (Principal.java):
package Filtro1;
public class Principal extends javax.swing.JFrame {
public Principal() {
initComponents();
this.setLocationRelativeTo(null);
}
private void initComponents() { ... }
private void jButtonIniciarActionPerformed(java.awt.event.ActionEvent evt) {
Imagen im = new Imagen(jPanel1);
jPanel1.add(im).repaint();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Principal().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButtonIniciar;
private javax.swing.JPanel jPanel1;
// End of variables declaration
}
Codigo 2 (imagen.java):
package Filtro1;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
public class Imagen extends javax.swing.JPanel {
int x, y;
public Imagen(JPanel jPanel1) {
this.x = jPanel1.getWidth();
this.y = jPanel1.getHeight();
this.setSize(x, y);
}
@Override
public void paint(Graphics g) {
try {
BufferedImage image = ImageIO.read(new File("src/Images/imagen1.png"));
int color;
for (int j = 0; j < image.getHeight(); j = j + 2) {
for (int i = x / 2; i < image.getWidth(); i++) {
color = image.getRGB(i, j);
image.setRGB(i, j, color - 150);
}
}
g.drawImage(image, 0, 0, this);
} catch (IOException ex) {
Logger.getLogger(Imagen.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Resultado:
Una forma sencilla y rápida de aprender JAVA, observando y deduciendo cómo se comporta el lenguaje a través de ejemplos prácticos.
Suscribirse a:
Enviar comentarios (Atom)
Con la tecnología de Blogger.
No hay comentarios:
Publicar un comentario