2
respostas

Leitura de outros tipos de arquivos.

Eu achei a aula interessante e entendi que a classe FileInputStream lê um arquivo binário, depois InputStreamReader lê em forma de caractere, mas e se eu quiser acessar um arquivo que contenha uma imagem por exemplo? existe outro método Input?Só fiquei com essa curiosidade.

2 respostas

Eu uso este:

BufferedImage imagem = ImageIO.read(new File("mariabonita.gif")); // fazer algo com a imagem... ImageIO.write(imagem, "PNG", new File("mariabonita.png"));

Código de um site, espero ter ajudado. 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"));