【发布时间】:2015-08-29 20:06:13
【问题描述】:
我一直在使用 ImageView 对象来尝试修改图像然后绘制它。但是我只能使以下两个结果发生:
1) ImageView 被修改后,我尝试使用 getImage() 从中获取图像以显示,但它只显示了我最初拥有的原始图像。
示例代码:
sheet = new Image("file:sprite_sheet.png");
ImageView iv = new ImageView();
iv.setImage(sheet);
iv.setViewport(new Rectangle2D(0, 0, 32, 32));
g.drawImage(iv.getImage(), 100, 100);//'g' is GraphicsContext2D
2) 我设法通过将修改后的图像添加到 Group obj 中来显示它,如下所示:
root.getChildren().add(iv);
然后它只在屏幕的左上角显示图像,我无法移动它或对其进行任何操作。
我更喜欢(如果可能的话)用一种更像第一个结果所呈现的方法来解决这个问题。只是提前说一下,我知道还有另一个帖子similar to this atm,但我无法从中得到任何有用的信息。
【问题讨论】:
-
我很不清楚你在问什么。也许是How show specific part of an image in javafx。
-
给定的答案对于给定的案例场景来说太长而且具体,无法在这里帮助我。我要问的就是我上面所说的:“修改图像然后绘制它”我想知道如何使用 ImageView 对象修改图像(f.e 裁剪它),然后将修改后的 Image obj 取出以便我可以在其上使用 GraphicsContext2D.draw 方法并将其放在屏幕上我想要的位置。
-
对不起,我不太明白你的问题。 ImageView 不修改图像,它提供它们的视图。也许您想要做的就是使用 GraphicsContext drawImage function 在画布上的给定位置绘制图像、裁剪并缩放到请求的大小。