BufferedImage. Problemas?

Pessoal,

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

[code] 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;
}[/code]

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

[code] 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();
    }[/code]

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

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!

-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)

[quote=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)[/quote]

matou a pau…