BufferedImage carrega imagem inválida

2 respostas
aconstantino

Olá amigos,

Estou com um problema aqui no carregamento de uma imagem BMP. no disco ela está toda correta, consigo abrir no visualizador do windows corretamente no seguinte formato:
[img]http://img713.imageshack.us/img713/8272/polegaresquerdo.png[/img]

Porém quando eu carrego a imagem com o seguinte código

public static byte[] getBytesFromFile(File file) throws IOException {
        InputStream is = new FileInputStream(file);
    
        // Get the size of the file
        long length = file.length();
    
        if (length > Integer.MAX_VALUE) {
            // File is too large
        }
    
        // Create the byte array to hold the data
        byte[] bytes = new byte[(int)length];
    
        // Read in the bytes
        int offset = 0;
        int numRead = 0;
        while (offset < bytes.length
               && (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {
            offset += numRead;
        }
    
        // Ensure all the bytes have been read in
        if (offset < bytes.length) {
            throw new IOException("Could not completely read file "+file.getName());
        }
    
        // Close the input stream and return bytes
        is.close();
        return bytes;
    }
ServletOutputStream oStream = response.getOutputStream();

			BufferedImage image = new BufferedImage(800, 750,
					BufferedImage.TYPE_BYTE_GRAY);
			image.getRaster().setDataElements(0, 0, 800, 750,
					dedoAtual.getImagem());

			image = ImageUtils.resize(image, 369, 346);
			ImageIO.write(image, "jpeg", oStream);

Ela é exibida da seguinte forma:
[img]http://img59.imageshack.us/img59/4338/imagemcapturadavisualiz.jpg[/img]

Alguém poderia dar uma luz??

2 Respostas

E

Bom, não é desse jeito que você carrega arquivos BMP. Eles não são exatamente um mapa compatível com BufferedImage (e podem até ter uma compressão RLE em alguns casos).

aconstantino

Como seria o carregamento?

Criado 14 de outubro de 2010
Ultima resposta 14 de out. de 2010
Respostas 2
Participantes 2