Mostrando postagens com marcador java. Mostrar todas as postagens
Mostrando postagens com marcador java. Mostrar todas as postagens

terça-feira, 28 de dezembro de 2010

Text 2 Image em Java

Pessoal,

Segue abaixo uma classe em java que converte um texto em uma imagem. Tem muitos parametros que estão estáticos e ela precisa ser melhorada... Isso mesmo, carece JavaDoc e torná-la mais genérica. A idéa aqui é ser mais um material na Net que pode servir nas pesquisas sobre o assunto. Quando eu tiver um tempinho eu melhoro ela.

import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;

import javax.imageio.ImageIO;

/**
* Classe utilitária para criar uma imagem a partir de um texto.
* Essa classe não tem como objetivo ser utilizada para recursos de captcha.
* Possivel uso dessa classe: pares de um teclado virtual.
* Exemplo:
* Text2ImageHelper.criar("1 ou 9","jpeg",response.getOutputStream());
*
*/
public class Text2ImageHelper {

/**
* Ponto de atenção, caso tenhamos muitas imagens em cache. Impacto direto na memoria do servidor.
*/
private static Map images = new HashMap();

/**
* Convert o texto em uma imagem
* metodo utilitario para criar o stream da imagem dinamica.
* @param text
* @return
* @throws IOException
*/
public static void criar(String text, String tipoImagem, OutputStream os) throws IOException {
BufferedImage buffer = getBufferImage(text);
ImageIO.write(buffer, "jpeg", os);
}

/**
* Usa o cache para recuperar o Buffer. Só cria novo se ainda nao existir no cache.
* @param text
* @return
*/
private static BufferedImage getBufferImage(String text) {
BufferedImage buffer = images.get(text);
if (buffer == null){
buffer = criarBufferImage(text);
images.put(text, buffer);
}
return buffer;
}

/**
* Criar o buffer de imagem. A imagem tem um tamanho de 30kb.
* @param text
* @return
*/
private static BufferedImage criarBufferImage(String text) {
final int WIDTH = 80;
int HEIGHT = 50;
BufferedImage buffer =
new BufferedImage(WIDTH,
HEIGHT,
BufferedImage.TYPE_INT_RGB);
Graphics g = buffer.createGraphics();
g.setColor(Color.GRAY);
g.fillRect(0,0,WIDTH,HEIGHT);
g.setColor(Color.BLACK);
Font font1 = new Font("Helvetica", Font.BOLD, 22);
g.setFont(font1);
FontMetrics fm = g.getFontMetrics();
Rectangle2D area = fm.getStringBounds(text, g);
g.drawString(text, (int)(WIDTH - area.getWidth())/2,(int)(HEIGHT + area.getHeight())/2);
return buffer;
}

}

terça-feira, 8 de junho de 2010

Mais comandos-utilitários Linux/Java

Linux:
hdparm - Verificar velocidade de IO
Exemplo:
hdparm -t /dev/sda1
/dev/sda1:
Timing buffered disk reads: 224 MB in 3.02 seconds = 74.25 MB/sec

Java
jps - lista processos java
jmap -histo:live pid

terça-feira, 13 de abril de 2010

James Gosling sai da Oracle

James Gosling, pai do Java, confirma sua saída da Sun, ou melhor, agora Oracle. Existem muito especulações na Net sobre os reais motivos dessa decisão. No entanto, em seu blog ele optou por não revelá-los: "As to why I left, it's difficult to answer: Just about anything I could say that would be accurate and honest would do more harm than good"

Vejam o blog dele: http://nighthacks.com/roller/jag/

O que deve mudar agora com a saida dele?

Cenas dos próximos capítulos.