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]
-------------------------------------------------------------------------

Responder a