/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package CapturarPantallas;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import javax.swing.ImageIcon;

/**
 * permite manipuelar el objeto imagen
 * @author Bantec inc.
 */
public class ComparaImagenes {

 /**
 * Compara  los pixeles entre img
 * @param imgA imagen 1
 * @param imgB imagen 2
 * @param porc numero pixeles maximos entre imagenes
 * @return true si las imagenes son diferentes
 */
    public boolean compararImagenes(BufferedImage imgA, BufferedImage imgB, int porc) {
        int a = 0;
        for (int i = 0; i < imgA.getHeight(); i += 4) {
            for (int j = 0; j < imgA.getWidth(); j += 4) {
                if (imgA.getRGB(j, i) != imgB.getRGB(j, i)) {
                    a++;
                }
            }
        }
//System.out.println("diferencia entre imagenes  : "+a);
        return a > porc;
    }

    /**
     * Obtiene imagen de un directorio
     * @param nombre Nombre del direcctorio
     * @return BufferedImage
     */
    public BufferedImage cargarImg(String nombre, String dir) {
        Image image = null;
        image = new ImageIcon(dir + "\\" + nombre).getImage();
        return toBufferedImage(image);
    }

    /**
     * Convierte el objeto Imagen  a bufferImage
     * @param image Imagen
     * @return BufferedImage
     */
    BufferedImage toBufferedImage(Image image) {
        if (image == null) {
            return null;
        }
        /** nos aseguramos que la imagen está totalmente cargada */
        image = new ImageIcon(image).getImage();
        /** creamos la nueva imagen */
        BufferedImage bufferedImage = new BufferedImage(
                image.getWidth(null),
                image.getHeight(null),
                BufferedImage.TYPE_INT_RGB);
        Graphics g = bufferedImage.createGraphics();
        g.drawImage(image, 0, 0, null);
        g.dispose();
        return (bufferedImage);
    }
}
