BufferedImage. Problemas?

3 respostas
marcoantoniorocha

Pessoal,

Estou abrindo uma imagem (gif) dentro de um BufferedImage.

public static BufferedImage loadImage(String path) {

        ImageIcon icon = new ImageIcon(path);
        Image image = icon.getImage();

        BufferedImage buffered = new BufferedImage(image.getWidth(null),
            image.getHeight(null), BufferedImage.TYPE_INT_ARGB);

        Graphics g = buffered.getGraphics();
        g.drawImage(image, 0, 0, null);

        return buffered;
    }

Feito isso, preciso percorrer toda a imagem, pixel a pixel, pegando sua cor.

int largura = bi.getWidth();
        int altura = bi.getHeight();

        System.out.println("Largura: " + largura);
        System.out.println("Altura: " + altura);

        System.out.println("-------------------------------------------------");

        for (int y = 0; y &lt altura; y++) {
            for (int x = 0; x &lt largura; x++) {
                System.out.print(bi.getRGB(x, y) + " ");
            }
            System.out.println();
        }

A imagem é em preto e branco, só que estou obtendo:

-1: Branco
-16777216: Preto

Isso é correto? Não acho documentação em nenhum lugar...

Abraços,
Marco

3 Respostas

cassio

Cara, o RGB é um valor que pode estar em dois formatos:

  • 3 valores nteiros
  • um hexadecimal

Acho que vc esta imprimindo usando um certo formato sendo que a informação está em outro…

Abraço!

T

-1 = 0xFF FF FF FF = opacidade (alpha) 100%, R = 0xFF (255), G = 0xFF (255), B = 0xFF (255)
-16777216 = 0xFF 00 00 00 = opacidade 100%, R = 0x00 (0), G = 0x00 (0), B = 0x00 (0)

cassio

thingol:
-1 = 0xFF FF FF FF = opacidade (alpha) 100%, R = 0xFF (255), G = 0xFF (255), B = 0xFF (255)
-16777216 = 0xFF 00 00 00 = opacidade 100%, R = 0x00 (0), G = 0x00 (0), B = 0x00 (0)

matou a pau…

Criado 12 de setembro de 2006
Ultima resposta 12 de set. de 2006
Respostas 3
Participantes 3