[RESOLVIDO]Dúvida Graphics2D que não desenha

Galera, não sabia se abria o tópico aqui ou na outra sessão de “Interface Gráfica” na dúvida abri aqui mesmo. Vamos ao problema, eu tenho uma imagem em preto e branco, pra ser mais preciso uma imagem com 4 impressões digitais juntas(o equipamento pega 4 dedos de uma vez) e preciso “cortar” essa imagem em 4 imagens diferentes, uma pra cada dedo. Vamos a minha idéia, primeiro pensei em varrer só uma parte da imagem, sei la uns 100 pixels da esquerda pra direita até o topo(na altura) e pegar os pontos pretos por num polígono e desenhar em outra imagem(à priori só um fundo branco). Isso seria feito, obviamente, 4 vezes, uma vez pra cada dedo. O problema de extrair os pontos pretos e criar o polígono tá resolvido, o problema é desenhar esse polígono em outra imagem(outro arquivo). Eis o código:

try {
			BufferedImage image = ImageIO.read(new File("C:\\Users\\Hed\\Desktop\\impressao-digital.jpg"));
			BufferedImage imagem = ImageIO.read(new File("C:\\Users\\Hed\\Desktop\\telaBranca.png"));
			List<Point> pontos = new Vector<Point>(); //pontos pretos
			for(int i=0;i<image.getWidth();i++){
				for(int j=0;j<image.getHeight();j++){
					Color cor = new Color(image.getRGB(i,j));
					int red = cor.getRed(); // jeito dummy de se fazer
					int blue = cor.getBlue();  // jeito dummy de se fazer
					int green = cor.getGreen();  // jeito dummy de se fazer
					if(red==0 && blue==0 && green==0){  // jeito dummy de se fazer
						pontos.add(new Point(i,j));
					}
				}
			}
			int[] pontosEixoX = new int[pontos.size()];
			int[] pontosEixoY = new int[pontos.size()];
			for(int i=0;i<pontos.size();i++){
				pontosEixoX[i] = pontos.get(i).x;
				pontosEixoY[i] = pontos.get(i).y;
			}
						
			Polygon poligono = new Polygon(pontosEixoX,pontosEixoY,pontos.size());
			Graphics2D g2d = imagem.createGraphics();
			g2d.fillPolygon(poligono);
			g2d.drawPolygon(poligono);
			
		}
		catch (IOException e) {
			e.printStackTrace();
		}
	}

Valeu galeeeera! E peguem leve ai que eu to enferrujado em desktop. hehehee :lol:

PS: Eu sei que da pra dar uma otimizada no código, como eliminar essa lista de pontos, e quando o ponto na imagem for preto é só mandar a coordenada X pro vetor pontosEixoX e a coordenada Y pro vetor pontosEixoY, e assim dar uma boa otimizada. É que eu quis deixar mais claro o código.

  1. Crie um BufferedImage novo, que irá conter o conteúdo desse novo arquivo:
  1. Desenhe o que você quiser nessa nova imagem:

Graphics2D g2d = dedo1.createGraphics(); g2d.fillPolygon(poligono); g2d.dispose();

  1. Grave a imagem num arquivo:

Valeu Vini!!
E foi mal se minha dúvida era muito ridícula. hehehe
Deu certo. Agora eu sei que essa minha ideia não é a mais apropriada!
ehuaeahuheahueha