Olah Jorge Menezes , jah havia recebido uma solução de outra lista ... estah funcionando , ateh agora pelo menos , uma vez que ainda nao fiz tudo o que desejava fazer ... porem a tua solucao estah me parecendo mais simples ... apesar de que para o que eu preciso mesmo , manipular os pixles e suas cores , a outra solucao parece se aplicar exatamente ... mas nao deixarei de fazer um experimento com a tua ideia , valeu mesmo por dar uma luz :-) tava dificil a coisa , eh eh ;-) ... segue abaixo a solucao de D. Donadan da lista javacampinas :
Wild Boar, O que você pode fazer é utilizar um BufferedImage para manipular o contexto gráfico do seu Canvas ou Panel. O BufferedImage contem as funcoes que você esta procurando, e seu contexto gráfico pode ser editado com as funcões padroes do objeto Graphics2D. Porém, para poder associa-lo ao Canvas, creio que a maneira mais fácil seja desenhar suas retas direto no BufferedImage ao inves de desenhar no Canvas, e depois descarregar o Buffer no contexto gráfico dele. Aqui estão alguns comandos interessantes que você pode (ou deve!) utilizar: // BI será criado a partir das dimensões do canvas BufferedImage BI = (BufferedImage) meuCanvas.createImage ( meuCanvas.getWidth(), meuCanvas.getHeight ()); // Para desenhar no canvas, desenhe antes no grafico do Buffer Graphics2D G = BI.getGraphics (); G.setColor (Color.black); G.drawLine (0, 0, 100, 100); // Funções para alterar os pixels do Buffer Color corPixel = new Color (BI.getRGB (50, 50)); BI.setRGB (50, 50, Color.green.getRGB ()); // Funcao para descarregar Buffer no contexto grafico do canvas meuCanvas.getGraphics ().drawImage (BI, 0, 0, this); // Sugiro que esta funçao esteja reescrevendo // a função paint do componente canvas public class minhaClasseCanvas extends Canvas { ... public void paint (Graphics g) { g.drawImage (BI, 0, 0, this); } } Espero que tenha dado alguma luz para o seu desenvolvimento! ;o) Daniel Donadon --- Jorge Menezes <[EMAIL PROTECTED]> escreveu: > Caro, para voce transformar o conteudo de Graphics > ( Panel, Canvas, > etc... ) em Image > faca o seguinte : > > > Rectangle bounds = comp.getBounds(); > > Image im = > comp.createImage(bounds.width,bounds.height); > Graphics g = im.getGraphics(); > comp.paint(g); > > A partir daquí você tera' o Graphics do seu > "comp" em "im" > > Se desejar alguma implementação profissional dê uma > olhada no "JAI" na > pagina da Javasoft > > > Atenciosamente, > > > > Jorge Menezes > > > > > > ----- Original Message ----- > From: "Wild Boar Wannabe" > <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Thursday, September 27, 2001 8:47 PM > Subject: [java-list] duvida "basica" java > > > > > > Olah lista , > > Uma duvida que parece simples mas vem me dando > > trabalho ... e nao encontro tambem uma lista de > > discussao que fassa ideia de como solucionar ... > > Eh o seguinte , apos se desenhar uma linha preta > , > > por exemplo , utilizando o metodo drawLine() em um > > Panel ou Canvas com fundo branco , como se faz > para > > verificar quais os pixels que foram utilizados > para > > representar a linha , ou seja , quais pixels que > > ficaram com a cor preta ??? ... > > Se alguem souber responder esta pergunta ou > indicar > > uma direcao para sua solucao serah de grande ajuda > ... > > o que pretendo fazer sao interpretacoes de > desenhos > > feitos por pessoas , e para isso farei varredura > de > > pixels da area desenhada pela pessoa verificando > > coisas como se foi mais desenhado dentro ou fora > de um > > circulo , e tambem fazendo deteccao de bordas para > > outras verificacoes , e etc ... > > Jah andei procurando possiveis solucoes nas > > documentacoes Java , mas nada parece ser o que > > resolverah o problema ... jah andei olhando as > classes > > Image e cia (ImageProducer e etc ...) mas nada > parece > > ser exatamente o que presiso , ateh mesmo por que > nao > > vejo uma forma de passar o que estah representado > no > > Panel (ou Canvas) para uma Image ... andei dando > uma > > olhada na classe Graphics para tentar encontrar > algo , > > e nada , isso por que eh no Graphics dos > Components > > que se da o "desenho" da linha ao se utilizar o > metodo > > drawLine() ... > > Bom , eh isso , alguem aih faz ideia de como se > faz > > para resolver o problema citado no inicio do > e-mail > > ??? Ou mesmo faz ideia do que serah que pode > resolver > > o problema para que eu posso direcionar a minha > busca > > ??? ... > > Sendo o que tinha , valeu , teh mais lista ;-) > ... > > > > > ____________________________________________________________________________ > ___________________ > > Yahoo! GeoCities > > Tenha seu lugar na Web. Construa hoje mesmo sua > home page no Yahoo! > GeoCities. É fácil e grátis! > > http://br.geocities.yahoo.com/ > > > > ------------------------------ 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] > > > ------------------------------------------------------------------------- > > > > > ------------------------------ 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] > ------------------------------------------------------------------------- > _______________________________________________________________________________________________ Yahoo! GeoCities Tenha seu lugar na Web. Construa hoje mesmo sua home page no Yahoo! GeoCities. É fácil e grátis! http://br.geocities.yahoo.com/ ------------------------------ 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] -------------------------------------------------------------------------