灰度到二进制转换

时间:2016-02-10 10:55:25

标签: java

我正在尝试将灰度图像转换为二进制图像。我尝试了以下代码,但它不起作用。我给出了一段我的代码,其中灰度图像被设置为JLabel图标,该图标将被转换为二进制并再次设置为JLabel图标。请帮我找出我的错误。“

icon1 = l2.getIcon();
im = ((ImageIcon)icon1).getImage();
bi = new BufferedImage(im.getWidth(null), im.getHeight(null), BufferedImage.TYPE_BYTE_GRAY);
Graphics g = bi.createGraphics();
g.drawImage(im, 0, 0, null);
g.dispose();

for(int i=0; i<bi.getHeight(); i++)
{
    for(int j=0; j<bi.getWidth(); j++)
    {
        Color c = new Color(bi.getRGB(j, i));
        if(c.getRed()<=125)
        {
            bi.setRGB(j, i, 0);
        }
        else if(c.getRed()>125)
        {
            bi.setRGB(j, i, 1);
        }
    }
}
icon= new ImageIcon(bi.getScaledInstance((panel2.getWidth())*15/15,(panel2.getHeight())*15/15, Image.SCALE_AREA_AVERAGING));
l4.setIcon(icon);
l4.setVisible(true);

0 个答案:

没有答案