Transformando imagens em uma matriz 256x256 ?!

Como faço para transformar uma imagem qualquer em uma matriz de pixels no formato 256x256 para que eu possa trabalhar com os pixels desta imagem, eu sei que com o matlab isso e possivel, gostaria de saber se em java eu posso fazer isso e como???

Thanks… :grin:

Oi

TAQ, seja bem vindo ao PJ :):):slight_smile:

Olhe, não sei se em Java2D ou Java3D tem alguma coisa pra fazer isso pra vc, mas acho que tu vai ter que fazer tudo programativamente mesmo :cry:

T+

A classe PixelGrabber serve justamente para isso.

http://java.sun.com/j2se/1.4.2/docs/api/java/awt/image/PixelGrabber.html

Ela é fácil de usar. Mas se tiver qualquer dificuldade avise que eu mando um exemplo.

Off topic:
Que negócio é esse de colocar um avatar do PJ na minha conta? Só pode ser coisa do J’vô!

O meu avatar, jamais construído, seria parecido com aquele comercial de cerveja com o ‘superfôfo’, ou melhor o ‘hipersoft’ rodeado da ‘muguegada’. :grin:

Oi

hehehehe, hipersoft, tu não gostou não?

É o avatar default que nós fizemos pra quem não escolhe avatar nenhum… Colocamos aqui pra saber a opinião do pessoal… de a sua lá…

http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&t=7989

T+

Amigo vc poderia me dar um exemplo de como eu posso utiliza-la, eu entrei no endereço que me falaste, la ta um pouco vago, e eu tb estou aprendendo java agora… Valews D+++

:grin:

Olá, TAQ

Fragmento para pegar os pixels:

final static int MSIZE = 256;

int [] buf = new int [MSIZE * MSIZE];
    

Image image = new ImageIcon("lua.gif").getImage();
PixelGrabber grabber = new PixelGrabber(image, 0,0, MSIZE, MSIZE, buf, 0, MSIZE);
grabber.grabPixels();
if((grabber.getStatus() & ImageObserver.ABORT) != 0)
{
  System.out.println("image fetch aborted or errored");
  System.exit(1);
}
try { Thread.sleep(1000); } catch(Exception e){}
ColorModel cm = grabber.getColorModel();

buf contém os pixels para serem manipulados.

Fragmento para reconstruir a imagem modificada

Image image = Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(MSIZE, MSIZE, cm, buf, 0, MSIZE));
g.drawImage(image, 0, 0, Color.black, null);

Off-Topic

J’vô, ficou legal o avatar padrão. :wink:

Ola galera blz!, este código usando o PixelGrabber funciona perfeito mas to com um problema quanto a minha figura, por exemplo, eu desenho 20 pixels pretos e salvo a imagem quando eu abro ela novamente ela esta com varios outros pixels em cinza claro, mais os 20 que eu tinha desenhado, que também são reconhecidos como pixels acesos. tem uma forma de fazer ele reconhecer somente os pixels pretos ??