Есть картинка класса Image. Требуется отобразить её в произвольной форме. Например, как в мессенджерах - у пользователя аватар прямоугольной формы, а отображается он форме круга. Какими способами это можно сделать?
Вашу задачу можно реализовать, используя ImagePattern. Есть несколько уже разработанных ораклом форм одной из которых является круг - Circle. Объединив все это можно получить следующее:
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.paint.ImagePattern;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;
public class Test extends Application {
@Override
public void start(Stage stage) {
Group root = new Group();
Scene scene = new Scene(root);
Image image = new Image("https://pbs.twimg.com/profile_images/800840075311333376/515GX-Cc_400x400.jpg");
Circle circle = new Circle(60);
circle.setCenterX(60);
circle.setCenterY(60);
circle.setFill(new ImagePattern(image, 0, 0, 120, 120, false));
root.getChildren().add(circle);
stage.setScene(scene);
stage.show();
}
public static void main(String args[]) {
launch(args);
}
}
Результат выполнения будет логотип в виде круга, хотя оригинал картинки прямоугольный.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости