Мне интересно, есть ли какой-либо путь в GraphicsContext Canvas в JavaFX, чтобы переопределить все пиксели в пути таким образом, чтобы они стали прозрачными снова. Как функция clearRect, но для любого пути.Переопределить путь с прозрачным цветом в javafx Canvas/GraphicsContext
Я посмотрел на различные BlendModes и эффекты, но кажется, что нет никакого способа, чтобы фактически переопределить альфа-значение, которое может быть достигнуто, например,
- рендеринга прозрачного цвета с оператором Porter/Duff Src
- рендеринга непрозрачный цвет с globalCompositeOperation назначения отъезда в HTML5
Я был бы очень рад, если бы кто-то знал, как добиться этого без tessellating путь и с помощью нескольких вызовов clearRect. Спасибо.
http://docs.oracle.com/javase/8/javafx/api/javafx/scene/canvas/GraphicsContext.html
Добавление в ответ на первый комментарий: Вместо того, чтобы использовать узел Path Я использую узел Canvas для выполнения рендеринга с использованием GraphicsContext и, таким образом, не представляется возможным модифицировать цвет ранее обработанного пути. Я пытаюсь сделать что-то вроде
Canvas canvas = …;
final GraphicsContext context = canvas.getGraphicsContext();
context.setFill(Color.BLUE);
context.fillRect(0,0,100,100);
…
…
и позже я хочу, чтобы сбросить пикселы на пути к прозрачному
context.setStroke(Color.TRANSPARENT);
context.beginPath();
context.moveTo(0, 0);
context.lineTo(10,10);
…
context.stroke();
Однако, как смешивание применяется это не работает. В других библиотеках воспроизведения можно использовать, например, один из вышеупомянутых способов смешивания/компоновки для достижения этого, но до сих пор я не смог идентифицировать такую функциональность в javafx.
Что вы хотели бы получить, как это выглядит на примере изображения? Либо у вас есть узел Path, либо установите прозрачность, либо нет, и вы перерисовываете путь с цветом фона. – Roland
Я отредактировал этот вопрос с более подробной информацией, чтобы попытаться задать вопросы clearer – illfang
Но что вы ожидаете, когда рисуете на холсте прозрачным цветом? Это не будет иметь никакого эффекта. Просто нарисуйте его цветом фона. Я подозреваю, что вам нужны разные слои. Это не единственный холст. – Roland