把 NDArray 的內容使用 BufferedImage 畫出來
public void showImage(NDArray img) throws IOException{ JFrame frame = new JFrame(); int ratio = 10; frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); int width = (int)img.getShape().get(0); int height = (int)img.getShape().get(1); frame.setSize(width * ratio + 14, height * ratio + 38); BufferedImage bi = new BufferedImage(width * ratio, height * ratio, BufferedImage.TYPE_INT_RGB);
int val; for(int i=0; i < height; i++) { for(int j=0; j < width; j++) { val = img.get(new NDIndex(String.format("%d, %d", i, j))).toType(DataType.INT32, true).toIntArray()[0]; for(int x=0; x < ratio; x++) { for(int y=0; y < ratio; y++) { bi.setRGB(j * ratio + y, i * ratio+ x, new Color(val, val, val).getRGB()); } } } } JPanel panel = new JPanel() { @Override public void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(bi, 0,0, null); } }; frame.add(panel); frame.setVisible(true);}
裡面的 ratio
是想要放大的倍數