如何在图像视图(JavaFx)中放置旋转的图像



当我在图像视图中旋转图像时,它会从角落剪切,这是旋转图像的功能,我使用BufferedImage然后将其转换为图像:

public BufferedImage rotate(BufferedImage bImage, int angle) {
    int w = bImage.getWidth();
    int h = bImage.getHeight();
    AffineTransform transform = AffineTransform.getRotateInstance(Math.toRadians(angle), w / 2, h / 2);
    AffineTransformOp op = new AffineTransformOp(transform, AffineTransformOp.TYPE_BILINEAR);
    BufferedImage bImage2 = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
    op.filter(bImage, bImage2);
    }
    int a = bImage2.getWidth();
    int b = bImage2.getHeight();
    view.setFitWidth(a);
    view.setFitHeight(b);
    return bImage2;
}

这是我将旋转图像放在图像视图中的旋转按钮的代码:

   @FXML
    private void rotation15(ActionEvent event) throws IOException {
        BufferedImage img2 = rotate(grp_img.get(0), 15);
        view.setImage(convert(img2)));
    }


我该怎么办?请帮我!!!

未测试,但请尝试

BufferedImage bImage2 = op.createCompatibleDestImage(bImage, null);
op.filter(bImage, bImage2);

最新更新