我首先将帧添加到JavaFX中的图像,首先将帧添加到画布然后再添加到图像中, 所以它重叠,图像似乎有一个框架。
由于某些原因,我的图像变形,它的缩放很差,并使其中的所有内容看起来都很胖"。
如果我尝试在ImageView
(代码中名为"图像"变量)中显示图像,它看起来很正常,
所以我试图从正常的width
中获取值(height
和ImageView
),但仍然没有运气:
Image i = new Image(path.toUri().toString());
image.setImage(i);
canvas.setWidth(image.getFitWidth() + 20);
canvas.setHeight(image.getFitHeight() + 20);
GraphicsContext gc1 = canvas.getGraphicsContext2D();
gc1.drawImage(rimage, 0, 0, image.getFitWidth() + 20, image.getFitHeight() + 20);
GraphicsContext gc = canvas.getGraphicsContext2D();
image.preserveRatioProperty();
gc.drawImage(i, 10, 10, image.getFitWidth(), image.getFitHeight());
原始图片:
陷害和扭曲(头部看起来更圆):
答案 0 :(得分:0)
我自己没有对此进行过测试,但我发现了一些关于代码的注意事项。
首先,行
image.preserveRatioProperty();
实际上并没有改变ImageView的任何状态,它只是告诉你ImageView是否设置为保留比率。
你可能想要的是:
image.setPreserveRatio(true);
我相信它可能会做你想要的。
如果没有,可能是因为图片已经加载,所以如果这仍然不起作用,请尝试在image.setPreserveRatio(true);
之前放置image.setImage(i);
答案 1 :(得分:0)
窗口的宽度是不是太宽了?尝试使用另一个drawImage裁剪图像,您可以在其中定义要使用的图像部分。或者更改窗口大小。或使用宽度和高度绘制相对于图像中的宽度和高度。