将图像居中并将其裁剪为固定像素大小 (java)

Center an image and the crop it to a fixed pixel size (java)

我目前正在做一个项目,用户可以绘制图像,然后用一个小型神经网络猜测绘制的图像(在 Java 中,相信我,我想在 Python 中做到这一点). 为此,我使用快照导出了 canvas。现在我想将 a 居中并裁剪成固定大小,比方说 50x50 像素。 Java 有什么方法吗?

public void guess(ActionEvent actionevent) {

    SnapshotParameters params = new SnapshotParameters();
    params.setFill(Color.TRANSPARENT);
    WritableImage image = new WritableImage((int)canvas.getWidth(),(int)canvas.getHeight());
    image = canvas.snapshot(params, null);
    BufferedImage bufferedImage = new BufferedImage((int)image.getWidth(),(int)image.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
    bufferedImage = SwingFXUtils.fromFXImage(image, null);
    String str = NNInterface.initNN(bufferedImage);
    outputText.setText(str);
}

}

否则我不得不使用双数组或 smth。

感谢

crop a to a fixed size, let's say 50x50 pixel. Does Java have any methods for this?

嗯,在你的问题中你使用了 BufferedImage 标签和 Image 标签。

BufferedImage class 中找到 getSubimage(...) 方法,可以裁剪图像。

Image class 中找到 getScaledInstance(...) 方法,它允许您缩放图像。

人们会假设您在提问之前阅读了 API。可能是我没看懂问题?