Não consigo exibir um .bmp

1 resposta
Algebra

tenho este código abaixo que com essa linha de implementação

ImagePanel panel = new ImagePanel(new ImageIcon(fileChooser.getSelectedFile().getPath()).getImage());

exibi imagens .jpg .gif .png porém não exibe .bmp oque devo fazer?

class ImagePanel extends JPanel {

  private Image img;

  public ImagePanel(String img) {
    this(new ImageIcon(img).getImage());
  }

  public ImagePanel(Image img) {
    this.img = img;
    Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
    setPreferredSize(size);
    setMinimumSize(size);
    setMaximumSize(size);
    setSize(size);
    setLayout(null);
  }

  public void paintComponent(Graphics g) {
    g.drawImage(img, 0, 0, null);
  }
}

1 Resposta

fabiocsilva

Num trabalho recente que fiz usei uma API image4J especificamente para ler arquivos BMP. Ao usar a API padrão do Java ocorria um erro ao ler o cabeçalho da imagem.
Você pode usar a classe BMPDecoder dessa API para ler seu bmp e depois é só passar o retorno pro seu JPanel, já que o método retorna um tipo BufferedImage, subtipo de Image.

FileInputStream is = new FileInputStream(file);

            //Leitura do arquivo bitmap
            BufferedImage imagem = BMPDecoder.read(is);
Criado 28 de março de 2010
Ultima resposta 28 de mar. de 2010
Respostas 1
Participantes 2