java – 将图像转换为黑白图像
发布时间:2020-12-15 02:49:06 所属栏目:Java 来源:网络整理
导读:我在imagemagick中使用如下命令将图像转换为黑色和白色: convert myimg.png -monochrome out3.png 我想知道它是否有可能在Java中实现相同的结果?不使用Im4Java或JMagick? 解决方法 我想这取决于你所说的“mono-chrome”/“black white”…… public class
我在imagemagick中使用如下命令将图像转换为黑色和白色:
convert myimg.png -monochrome out3.png 我想知道它是否有可能在Java中实现相同的结果?不使用Im4Java或JMagick? 解决方法
我想这取决于你所说的“mono-chrome”/“black& white”……
public class TestBlackAndWhite { public static void main(String[] args) { new TestBlackAndWhite(); } public TestBlackAndWhite() { EventQueue.invokeLater(new Runnable() { @Override public void run() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception ex) { } JFrame frame = new JFrame("Test"); frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); frame.add(new TestPane()); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } }); } public class TestPane extends JPanel { private BufferedImage master; private BufferedImage grayScale; private BufferedImage blackWhite; public TestPane() { try { master = ImageIO.read(new File("C:/Users/shane/Dropbox/pictures/439px-Join!_It's_your_duty!.jpg")); grayScale = ImageIO.read(new File("C:/Users/shane/Dropbox/pictures/439px-Join!_It's_your_duty!.jpg")); ColorConvertOp op = new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY),null); op.filter(grayScale,grayScale); blackWhite = new BufferedImage(master.getWidth(),master.getHeight(),BufferedImage.TYPE_BYTE_BINARY); Graphics2D g2d = blackWhite.createGraphics(); g2d.drawImage(master,this); g2d.dispose(); } catch (IOException ex) { ex.printStackTrace(); } } @Override public Dimension getPreferredSize() { Dimension size = super.getPreferredSize(); if (master != null) { size = new Dimension(master.getWidth() * 3,master.getHeight()); } return size; } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); if (master != null) { int x = (getWidth() - (master.getWidth() * 3)) / 2; int y = (getHeight() - master.getHeight()) / 2; g.drawImage(master,x,y,this); x += master.getWidth(); g.drawImage(grayScale,this); x += master.getWidth(); g.drawImage(blackWhite,this); } } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |