java – 将图像转换为黑白图像
发布时间:2020-05-25 01:36:01 所属栏目:Java 来源:互联网
导读:我在imagemagick中使用如下命令将图像转换为黑色和白色: convert myimg.png -monochrome out3.png 我想知道它是否有可能在Java中实现相同的结果?不使用Im4Java或JMagick? 我想这取决于你所说的“mono-chrome”/“black white”…… public class TestBlack
|
我在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);
}
}
}
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
