Отображение картинки в JavaFX

379
01 октября 2017, 23:55

Есть картинка класса Image. Требуется отобразить её в произвольной форме. Например, как в мессенджерах - у пользователя аватар прямоугольной формы, а отображается он форме круга. Какими способами это можно сделать?

Answer 1

Вашу задачу можно реализовать, используя 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);
    }
}

Результат выполнения будет логотип в виде круга, хотя оригинал картинки прямоугольный.

READ ALSO
Поиск элемента в HashMap

Поиск элемента в HashMap

К примеру есть класс

317
Быстрая загрузка cookie для WebView

Быстрая загрузка cookie для WebView

Всем добрый день, в моём приложение почти сделал мини-браузерОсталось реализовать сохранение и загрузку cookie в WebView у JavaFX

254
Откуда появляется лишний размер формы?

Откуда появляется лишний размер формы?

Есть объект AnchorPaneВ свойствах установлено ширина и максимальная ширина 720

218