当我在图像视图中旋转图像时,它会从角落剪切,这是旋转图像的功能,我使用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);