Falta de Recurso

2 respostas
I

Boa tarde a todos.

Estou tendo de realizar um tratamento de imagem no qual eu recebo uma imagem e adiciono um circulo na mesma como se fosse um território, porém não estou gostando da minha performance, uma vez que nem posso escolher a largura do meu circulo.
Abaixo segue um exemplo do meu código.

package Exemplo;

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class TestDrawingPanel {
	
	public static void main(String args[]) throws IOException {
		File arq = new File("C:/teste.jpg");
		BufferedImage  img = ImageIO.read(arq);
		CriarImagemCirculo p = new CriarImagemCirculo();
		ImageIO.write(p.drawUnfilledShapes(img,50,25,25,"Super",Color.RED, Color.BLACK), "jpg", new File("imagem.jpg") );
	}
}
package Exemplo;

import java.awt.*;
import java.awt.image.BufferedImage;



public class CriarImagemCirculo {
	
	private static Font FONTE				= new Font("Monospaced", Font.PLAIN, 14);
	
	public BufferedImage drawUnfilledShapes(BufferedImage  img, int tamanho, int posicao_x, int posicao_y, String legenda, Color corCirculo, Color corLegenda)  {
		Graphics gra = img.createGraphics();
		gra.setColor(corCirculo);
		gra.drawOval(posicao_x, posicao_y, tamanho, tamanho);
		centerText(gra, legenda, (posicao_x + tamanho/2), posicao_y + tamanho,corLegenda);
		return img;
	}
	
	private void centerText(Graphics g, String texto, int x, int y, Color cor) {
		FontMetrics fm = g.getFontMetrics(FONTE);
		int text_width = fm.stringWidth(texto);
		int text_height = fm.getHeight();
		g.setColor(cor);
		g.setFont(FONTE);
		g.drawString(texto, x - text_width/2, y + text_height/2 + 5);
	}
}

Se alguem tiver um ideia melhor eu agradeço.

2 Respostas

R

Não estou estou a perceber o q voce pretende…

Pode ser um pouco mais explicito?

S

Como não? Esses “tamanho, tamanho” são o comprimento e a altura.

Criado 20 de dezembro de 2006
Ultima resposta 25 de dez. de 2006
Respostas 2
Participantes 3