| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/11/2008 13:10:46
|
felixcomputer
JavaTeenager
![[Avatar]](/images/avatar/6dfc35c47756e962ef055d1049f1f8ec.jpg)
Membro desde: 07/06/2006 11:12:19
Mensagens: 171
Localização: Belém - Pa
Offline
|
Galera, to precisando limpar um BufferedImage, procurei na internet e achei algumas soluções não muito boas:
Solução 1:
Todas as vezes que precisar limpar um buffer eu crio um novo objeto =P
Solução 2:
//Fazer um for do 0,0 ateh width, height e pintar todos os pixels...
g2D.setComposite( AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.0f));
Rectangle2D.Double rect = new Rectangle2D.Double(0,0,width,height);
g2D.fill(rect);
Solução 3
Essa parece boa, está disponível em um fórum aki:
> In my case, I found that I needed to control a lot of pixels directly,
> so I created an external JNI assembler library to allow me to
> *quickly* change pixels.
Mas infelizmente o cara naum colocou o código =(
Alguém ja fez algo pra limpar BufferedImage?
obrigado
|
Samuel Félix
O temor do Senhor é o principio da sabedoria!
http://sfelixjr.googlepages.com |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/11/2008 13:32:32
|
WillyKocher
JavaTeenager
Membro desde: 12/03/2007 14:47:07
Mensagens: 188
Offline
|
solução 2, repintar a tela e a solução que é + usada pelo menos quando eu li o killer game programming (acho que é esse o nome ) , lembro de eles usarem esta tecnica.
|
SCJP 6.0 - 91%
SCWCD 5.0 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/11/2008 13:43:03
|
felixcomputer
JavaTeenager
![[Avatar]](/images/avatar/6dfc35c47756e962ef055d1049f1f8ec.jpg)
Membro desde: 07/06/2006 11:12:19
Mensagens: 171
Localização: Belém - Pa
Offline
|
Ok. Obrigado, então acho vou fzer isso msm
|
Samuel Félix
O temor do Senhor é o principio da sabedoria!
http://sfelixjr.googlepages.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/11/2008 15:59:31
|
KWill
Virtual Machine Man
![[Avatar]](/images/avatar/042aec9e604155f2f06c0a16c5f9ba06.jpg)
Membro desde: 18/09/2006 10:05:46
Mensagens: 609
Offline
|
felixcomputer wrote:Galera, to precisando limpar um BufferedImage, procurei na internet e achei algumas soluções não muito boas: Solução 1: Todas as vezes que precisar limpar um buffer eu crio um novo objeto =P Solução 2: //Fazer um for do 0,0 ateh width, height e pintar todos os pixels... g2D.setComposite( AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.0f)); Rectangle2D.Double rect = new Rectangle2D.Double(0,0,width,height); g2D.fill(rect); Solução 3 Essa parece boa, está disponível em um fórum aki: > In my case, I found that I needed to control a lot of pixels directly, > so I created an external JNI assembler library to allow me to > *quickly* change pixels. Mas infelizmente o cara naum colocou o código =( Alguém ja fez algo pra limpar BufferedImage? obrigado
Enquanto eu fazia o meu software de acesso remoto em Java, o "Satan-AnyWhere", acabei pesquisando uns meios de se manipular rapidamente o conteúdo dos pixels de BufferedImage's. Primeiro, deve-se saber qual o "DataType" do DataBuffer do WritableRaster do BufferedImage, o que pode ser feito via "BufferedImage.getRaster().getDataBuffer().getDataType()", que vai te retornar um inteiro que tu precisa comparar com as "constantes" da classe DataBuffer. Sabendo qual o "DataType", dê o cast para classe filha de DataBuffer correspondente (DataBufferByte, DataBufferShort, DataBufferInt) ao retorno de "BufferedImage.getRaster().getDataBuffer()". Depois, é só manipular o conteúdo do retorno de método "getBankData()" da classe filha de DataBuffer correspondente, que normalmente é um array de array de bytes, shorts ou ints, conhecido também como array bidimensional. Os pixels estariam nesse array bidimensional. O primeiro índice do array bidimensional indica qual o "bank" e o segundo índice indica qual a posição do dado no "bank". Se você achar esse jeito muito complicado, a classe filha de DataBuffer correspondente também tem outros métodos para manipulação dos dados dentro dela mais interessantes. Inté.
This message was edited 1 time. Last update was at 13/11/2008 16:09:28
|
"Só estou certo de que não possuo outras certezas" - KWill
"Não penso, mas Googlo, logo existo!" - Geração Copy-Cola |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/11/2008 16:15:40
|
felixcomputer
JavaTeenager
![[Avatar]](/images/avatar/6dfc35c47756e962ef055d1049f1f8ec.jpg)
Membro desde: 07/06/2006 11:12:19
Mensagens: 171
Localização: Belém - Pa
Offline
|
Olá amigo, obrigado pela sua resposta... estarei testando a solução \o/
|
Samuel Félix
O temor do Senhor é o principio da sabedoria!
http://sfelixjr.googlepages.com |
|
|
 |
|
|
|
|