これをオンラインで行う方法を見つけようとしていますが、何も見つけることができませんでした。
JavaFX GraphicsContext で「逆円」を描きたい。これらの画像は、私が望むものを示しています。
画像エディターでは、新しいレイヤーの円の領域を消去するだけです... GraphicsContext でそれを行う関数は見当たりません。
この「円」の中心点と半径を選択できる必要があります。
ありがとう!
これをオンラインで行う方法を見つけようとしていますが、何も見つけることができませんでした。
JavaFX GraphicsContext で「逆円」を描きたい。これらの画像は、私が望むものを示しています。
画像エディターでは、新しいレイヤーの円の領域を消去するだけです... GraphicsContext でそれを行う関数は見当たりません。
この「円」の中心点と半径を選択できる必要があります。
ありがとう!
円形パスを作成し、画像を描画するときにクリップとして使用します。
@Override
public void start(Stage primaryStage) {
Image image = new Image("https://i.stack.imgur.com/zEoW1.jpg");
double w = image.getWidth();
double h = image.getHeight();
Canvas canvas = new Canvas(w, h);
GraphicsContext gc = canvas.getGraphicsContext2D();
// draw background
gc.setFill(Color.BLACK);
gc.fillRect(0, 0, w, h);
double r = Math.min(h, w) * 2 / 5;
double cx = w / 2;
double cy = h / 2;
// create circular path
gc.beginPath();
gc.moveTo(cx - r, cy); // to first point on the circle
gc.arc(cx, cy, r, r, 180, 360);
gc.closePath();
gc.clip();
gc.drawImage(image, 0, 0);
StackPane root = new StackPane();
root.getChildren().add(canvas);
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.show();
}