Estou criando um sistema e queria vetorizar uma imagem, criei ela com o JImagePanel do projeto Towel, mas se for preciso posso mudar. Tipo queria que se clicasse em uma metade fizesse algo, se clicasse em outra metade fizesse outra coisa.
É possivel isso né? Se sim, alguma luz?
sim é possível, mas as vezes da um pouco de trabalho dependendo do cenário, vetorizar a imagem é fácil mas você vai precisar mais que vetores, eu penso que você poderia percorrer os pixels da imagem e dependendo da localização tomar alguma ação, ex:
public BufferedImage vectorImage(BufferedImage bufferedImage) {
int width = bufferedImage.getWidth();
int height = bufferedImage.getHeight();
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
// lógica aqui
}
}
return bufferedImage;
}
Mas isso pode ser trabalhoso e oneroso pois percorrer os pixels é hard, mas se quando diz vetorizar a imagem e isso envolve a imagem ser escalar, ser ampliada sem perder qualidade etc… você poderia utilizar esta lib:
você vai precisa pegar a posição do mouse(x,y) quando clicar em cima da imagem, o problema que vejo(eu não tenho certeza do que vou falar agora) é quando você apresenta a imagem na tela e ela sofre resize etc… teremos que nos preocupar em atualizar os valores no java caso contrário as posições vão ficar erradas, mas o bom é ver certinho na documentação do Java na parte do mouseListener se já não existe algo que faça isso de uma forma automática, abaixo deixo alguns links com demos e docs da própria Oracle que vão te ajudar a concluir a tarefa, abraços.