Boa Tarde!
Galera fiz o programa abaixo que o usuário coloca suas imagens através do barra de menu até ai tudo certo, agr nao consigo programar o botao calcular para comparar se a imagens sao iguais poderia me ajudar plixxx??
Boa Tarde!
Galera fiz o programa abaixo que o usuário coloca suas imagens através do barra de menu até ai tudo certo, agr nao consigo programar o botao calcular para comparar se a imagens sao iguais poderia me ajudar plixxx??
Obtém um array de pixels de cada uma delas e compara como método Arrays.equals
int[] pixels1 = /* obtenha os pixels da 1a imagem */;
int[] pixels2 = /* obtenha os pixels da 2a imagem */;
if (Arrays.equals(pixels1, pixels2)) {
// as duas imagens são iguais
}
Entao aparece que todas as imagens sao iguais msm sendo diferente eu nao tenho q ligar a imagens ao pixels algo assim olhe o código como ficou
Segue abaixo codigo mais completo para ajudar, aparentemente n aparece nem um erro mais ao clicar no botao calcular aparece as imagens sao iguais msm as imagens sendo diferente
Ola,
no seu código, pixels1 e pixels2 são null , portanto sempre serão iguais.
Como o @staroski disse, você tem que obter os pixels de cada imagem antes de comparar.
e como faz para obter o pixels de cada imagem??
É que você atribuiu null
aos pixels…
Comparando null
com null
, obviamente vai dizer que são iguais.
Os comentários que eu coloquei “obtenha os pixels da 1a imagem” e “obtenha os pixels da 2a imagem” era justamente para você fazer o que o comentário pede:
Obter os pixels de cada imagem e armazenar em dois arrays de pixels.
Você pode usar a classe PixelGrabber
para obter um array de int correspondente aos pixels da imagem.
Taí, de mão beijada:
private static final Component OBSERVER = new Component() {};
private static int[] getPixels(BufferedImage image) {
final int width = image.getWidth(OBSERVER);
final int height = image.getHeight(OBSERVER);
int size = width * height;
PixelGrabber pixelGrabber = new PixelGrabber(image, 0, 0, width, height, new int[size], 0, width);
pixelGrabber.startGrabbing();
return (int[]) pixelGrabber.getPixels();
}
HaHaHa. Se eu fosse sábio, com certeza já teria mandado algumas pessoas folgadas catarem coquinho nesse fórum.
Mas gosto de tentar ajudar.
kkk Opa não agradeci ainda porque nao consegui sou novo nisso estou tentando ainda kkkk está dando erro eu fiz o metodo
private static final Component OBSERVER = new Component() {};
private static int[] getPixels(BufferedImage image) {
final int width = image.getWidth(OBSERVER);
final int height = image.getHeight(OBSERVER);
int size = width * height;
PixelGrabber pixelGrabber = new PixelGrabber(image, 0, 0, width, height, new int[size], 0, width);
pixelGrabber.startGrabbing();
return (int[]) pixelGrabber.getPixels();
só que o que eu coloco la no "obtenha o pixel ???
int[] pixels1 = /* obtenha os pixels da 1a imagem /;
int[] pixels2 = / obtenha os pixels da 2a imagem */;
??? ta foda JAVA é o capeta kkkk
@staroski
int[] pixels1 = getPixels(objetoBufferedImageDaImagem1);
Vou Testar vlww
Vlwww manowww deu certooo.
Obrigadoo !!