Palavras-chave: imagem, imagens, ler, salvar, carregar, editar, JPG, JPEG, GIF, PNG, imageio
Ler e escrever arquivos de imagens em Java é tão fácil que até nem parece Java:
BufferedImage imagem = ImageIO.read(new File("mariabonita.gif"));
// fazer algo com a imagem...
ImageIO.write(imagem, "PNG", new File("mariabonita.png"));
Já que foi fácil, vamos aproveitar esta dica para aprender também como alterar os pixels da imagem. Para isso, use os métodos getRGB()/setRGB() da classe BufferedImage. O método getRGB() retorna um array de int que representa os valores RGB de cada ponto da imagem.
Se você tivesse uma matriz, você poderia referenciar os pixels como matriz[lin][col]. Mas, aqui, como na maioria dos programas de processamento de imagens, temos um array para representar a imagem. Assim, temos que usar a notação pixels[w * lin + col], onde w é a largura da imagem.
O exemplo a seguir lê uma imagem, colore-a de maneira aleatório-psicodélica e a salva em outro arquivo:
BufferedImage imagem = ImageIO.read(new File("qualquer.jpg"));
int w = imagem.getWidth();
int h = imagem.getHeight();
int[] pixels = imagem.getRGB(0, 0, w, h, null, 0, w);
Random r = new Random();
for (int col = 0; col < w; col++) {
for (int lin = 0; lin < h; lin++) {
pixels[w * lin + col] =
new Color(r.nextInt(255), col % 255, lin % 255).getRGB();
}
}
imagem.setRGB(0, 0, w, h, pixels, 0, w);
ImageIO.write(imagem, "PNG", new File("arteabstrata.png"));





Gostei muito do artigo….
Muito bom o seu artigo, mas eu gostaria de lhe fazer uma pergunta, provavelmente de iniciante -.-
Eu preciso criar uma matriz[][] a partir de uma bmp monocromatica.
Tentei carregar para um buffered image, e criei um laço for para transferir pixel a pixel a informação da imagem no buffer para a matriz. Mas não funcionou corretamente.
Por favor, poderia me dizer como consigo fazer isso?
Faça a alteração seguinte no código acima:
…
for (int col = 0; col < w; col++)
for (int lin = 0; lin < h; lin++)
matriz[col][lin] = pixels[w * lin + col];
…
Gostei do artigo, contudo e como sou um principiante em JAVA, e tenho um trabalho para fazer estou bastante desorientado com a linguagem.
Gostaria de obter o código fonte para a seguinte situação:
1º- Pretendo abrir uma janela e através dela escolher um ficheiro de imagem;
2º- Depois de ter a imagem aberta, queria fazer a ampliação e a redução da mesma.
Pode ser simples para vocês, mas para mim é bastante complicado.
Gostaria que me ajudassem, enviando-me o código fonte em JAVA urgentemente.
Muito obrigado pela ajuda, desde já.
Rui Nunes
brother manda pra mim tb estou com esse mesmo problema, porfavor não sei oq fazer
Caro amigo,
Estou precisando pegar os pixels e colocar em uma matriz e gravar em txt, para poder fazer calculo de algoritmo genetico!
se puder me ajudar agradeço!
wwwwww wwwwwwww wwwwwwwwwwwwwwwwww
sdas asdasdas sdas d sad asdasdas sdas d sad asdasdas sdas d sad
dasd asdasdas sdas d sad asdasdas sdas d sad asdasdas sdas d sad
asdasdas sdas d sad as asdasdas sdas d sad asdasdas sdas d sad
wwwwww wwwwwwww wwwwwwwwwwwwwwwwww
sdas asdasdas sdas d sad asdasdas sdas d sad asdasdas sdas d sad
dasd asdasdas sdas d sad asdasdas sdas d sad asdasdas sdas d sad
asdasdas sdas d sad as asdasdas sdas d sad asdasdas sdas d sad
wwwwww wwwwwwww wwwwwwwwwwwwwwwwww
sdas asdasdas sdas d sad asdasdas sdas d sad asdasdas sdas d sad
dasd asdasdas sdas d sad asdasdas sdas d sad asdasdas sdas d sad
asdasdas sdas d sad as asdasdas sdas d sad asdasdas sdas d sad
wwwwww wwwwwwww wwwwwwwwwwwwwwwwww
sdas asdasdas sdas d sad asdasdas sdas d sad asdasdas sdas d sad
dasd asdasdas sdas d sad asdasdas sdas d sad asdasdas sdas d sad
asdasdas sdas d sad as asdasdas sdas d sad asdasdas sdas d sad
wwwwww wwwwwwww wwwwwwwwwwwwwwwwww
sdas asdasdas sdas d sad asdasdas sdas d sad asdasdas sdas d sad
dasd asdasdas sdas d sad asdasdas sdas d sad asdasdas sdas d sad
asdasdas sdas d sad as asdasdas sdas d sad asdasdas sdas d sad
muito bom, mas diga-me: vc poderia nos informar como posso redimensionar a imagem tambem, mas que seja um redimensionamento automático, sem definir altura e largura (JSP ou em servlet).
Obrigado.
Como faço para ao clicar em determinados pontos da imagem (esses pontos podem ser pré-definidos), fique de forma que ao clicar nesses pontos, ele mude de cor e não de forma aleatória, e sim cores que eu mesmo defino?
dsad sd asjdkl sjdlkja sd ajklsd
asdas
dasd
asd
asd
as
da
sd
asddddddddddddddddddddddddsd
asd
asd
asdasdadsadasdasd
sdas
da
sd
as
ddddddddddddddddddddddasdasda
da
sd
asdasda
Amigo estou utilizando o eclipse galileu e estou tendo dificuldade em importar imagens para um pacote, ou seja, não estou conseguindo achar nenhuma opção que me mostre para eu fazer esta opção.Você poderia me ajudar por favor?
Fico no aguardo…
new alert(“Virus!”)
Gostaria de saber como faço para enviar uma imagem (foto) pela rede para uma pasta e, caso haja um outro arquivo com o mesmo nome, renomear o que está sendo gravado, adicionando _1, _2, _3 e assim por diante.
Meu problema está sendo com o tipo de extensão da imagem (no caso, .ppm). O BufferedImage não tá abrindo essa extensão…
O programa que quero fazer é, dada uma imagem .ppm original e, quando o usuário passar algumas coordenadas, através dessas, fazer um corte na imagem e salvar só a parte referente ao recorte em outro arquivo .ppm
Alguém pode me dá uma idéia de como resolver essa bronca?
Gostaria de saber se tem como redimensionar a imagem??
Idem, to quase ficando loco com isso xD