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;
}

}

quarta-feira, 22 de dezembro de 2010

Mousse de chocolate branco

Minha namorada gostou muito dessa receita...

Ingredientes

Calda

* 1 tablete de NESTLÉ CLASSIC® Meio Amargo
* meio colher (sopa) de rum
* 2 colheres (sopa) de manteiga

Mousse

* 1 tablete de GALAK®
* 2 ovos
* 4 colheres (sopa) de açúcar
* 1 lata de Creme de Leite NESTLÉ®
* 1 envelope de gelatina em pó sem sabor (12g)
* 1 colher e meia (chá) de essência de baunilha


* Para derreter o chocolate, misture-o com creme de leite e leve-o ao banho maria -fica muito mais fácil. E cuidado com choque termico, NUNCA, e NUNCA misture-o com alguma coisa fria. aff... acredite... você não vai gostar do resultado.

Receita na Nestle