At 14:09 22/10/01 -0300, you wrote: >Pessoal, >estou com o seguinte problema: preciso salvar um objeto Graphics como uma >imagem no formato .gif ou .jpg. Algu�m sabe como posso resolver isso? > >Obrigado desde j�...
Tente este codigo.. no caso, eu pego uma figura .jpg que armazena
uma sequencia de numeros e "renderizo" um string para uma .jpg... isso eh
util para fazer contadores de visita, por exemplo.
O exemplo usa o pacote com.sun.image, q jah vem no jdk1.3
[]'s
<<attachment: set1.JPG>>
import java.io.*;
import com.sun.image.codec.jpeg.*;
import java.awt.image.*;
/** Classe de renderiza��o de imagens
*
* Created on 12/10/2001
*
* @author Herval Freire de A. J�nior
* @version 0.5a
*/
public class CounterRenderer{
/** Renderiza a sequ�ncia de entrada utilizando o imageSet dado e joga o resultado
na sa�da dada. RENDERIZA APENAS N�MEROS! */
public static void render(String sequence, File imageSet, OutputStream output)
throws IOException{
BufferedImage img = new
BufferedImage((sequence.length()*15),20,BufferedImage.TYPE_INT_RGB);
JPEGImageEncoder enc = JPEGCodec.createJPEGEncoder(output);
if(imageSet != null) {
JPEGImageDecoder dec = JPEGCodec.createJPEGDecoder(new
FileInputStream(imageSet));
BufferedImage imgSet = dec.decodeAsBufferedImage();
for(int i = 0; i < sequence.length(); i++) {
char letra = sequence.charAt(i);
try{
int num = Integer.parseInt(""+letra);
if(num == 0) num = 10;
num--;
int inicio = num*15;
// javax.swing.JOptionPane.showMessageDialog(null, "num: "+num+" inicio:
"+inicio);
img.getGraphics().drawImage(imgSet.getSubimage(inicio,0,15,20), i*15, 0,
null);
}catch(NumberFormatException erro){
erro.printStackTrace();
img.getGraphics().clearRect(0,0, img.getWidth(), img.getHeight());
img.getGraphics().drawString("hitCounter",1,
img.getHeight()-img.getHeight()/5);
}
}
} else { // imageSet � nulo
img.getGraphics().drawString(sequence,1, img.getHeight()-img.getHeight()/5);
}
enc.encode(img);
output.close();
}
public static void main(String args[]){
try{
CounterRenderer.render("1234567890", new File("set1.JPG"), new
FileOutputStream(new File("a.jpg")));
}catch(Exception erro){
erro.printStackTrace();
}
}
}
------------------------------------------------- ----------- Herval Freire de A. J�nior ---------- ----------- mailto:[EMAIL PROTECTED] ------------ --------- http://www.herval.hpg.com.br ---------- ----------------- UIN: 2067270 ------------------ ------------------------------------------------- --[The adepts are everywhere... awake! v0.666a]-- ------------------------------------------------- Sente o vento em teus cabelos: � o suspiro de milh�es de anjos. Sente a chuva em teu rosto: � o pranto que nunca cessa. Sente a vibra��o em teus p�s: � o cora��o do mundo que pulsa.
------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP d�vidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------
