JAVAFX_Effect介绍

  • 学习记录-慢慢完善
    • Bloom (发光效果)
    • InnerShadow(内阴影)
    • Lighting(光照)
    • BoxBlur(方框模糊)
    • DisplacementMap(位移置换)
    • DropShadow(阴影)
    • PerspectiveTransform(透视变换)
    • Reflection(倒影)
    • GaussianBlur(高斯模糊)
    • MotionBlur(运动模糊)
    • Glow(光晕)
    • ColorAdjust(色彩调节)
    • SepiaTone(棕褐色调)
    • Blend(叠加)

学习记录-慢慢完善

官方文档:
The abstract base class for all effect implementations. An effect is a graphical algorithm that produces an image, typically as a modification of a source image. An effect can be associated with a scene graph by setting the Node.effect attribute. Some effects change the color properties of the source pixels (such as ColorAdjust), others combine multiple images together (such as Blend), while still others warp or move the pixels of the source image around (such as DisplacementMap or PerspectiveTransform). All effects have at least one input defined and the input can be set to another effect to chain the effects together and combine their results, or it can be left unspecified in which case the effect will operate on a graphical rendering of the node it is attached to. Node
谷歌汉化:
‎所有效果实现的抽象基类。效果是生成图像的图形算法,通常作为源图像的修改。通过设置‎‎Node.effect‎‎属性,可以将效果与场景图相关联。某些效果会更改源像素的颜色属性(例如‎‎ColorAdjust),‎‎其他效果会将多个图像组合在一起(例如‎‎Blend‎‎),而还有一些效果会扭曲或移动源图像的像素(例如‎‎DisplacementMap‎‎或‎‎PerspectiveTransform‎‎)。所有效果都至少定义了一个输入,并且可以将输入设置为另一个效果,以将效果链接在一起并组合其结果,或者可以不指定效果,在这种情况下,效果将对其附加到的节点的图形呈现进行操作。‎Node

在JavaFX中,效果是一种应用于节点以在视觉上增强其外观的算法。
Node类的Effect属性用于指定效果。
这些效果中的每一个都由一个类表示,所有这些类都可以在名为javafx.scene.effect的包中找到。
将效果应用于节点
您可以使用setEffect()方法将效果应用于节点。 对于此方法,您需要传递效果的对象。
要将效果应用于节点,您需要创建节点。
实例化需要应用的效果的相应类。
设置效果的属性。
使用setEffect()方法将效果应用于节点

Bloom (发光效果)

根据可配置的阈值,使输入图像中较亮的部分看起来会发光。‎

 Bloom bloom = new Bloom();bloom.setThreshold(0.1);Rectangle rect = new Rectangle();rect.setX(10);rect.setY(10);rect.setWidth(160);rect.setHeight(80);rect.setFill(Color.DARKSLATEBLUE);Text text = new Text();text.setText("Bloom!");text.setFill(Color.ALICEBLUE);text.setFont(Font.font(null, FontWeight.BOLD, 40));text.setX(25);text.setY(65);text.setEffect(bloom);

InnerShadow(内阴影)

‎一种高级效果,用于在给定内容的边缘内渲染具有指定颜色、半径和偏移的阴影。‎

 InnerShadow innerShadow = new InnerShadow();innerShadow.setOffsetX(4);innerShadow.setOffsetY(4);innerShadow.setColor(Color.web("0x3b596d"));Text text = new Text();text.setEffect(innerShadow);text.setX(20);text.setY(100);text.setText("InnerShadow");text.setFill(Color.ALICEBLUE);text.setFont(Font.font(null, FontWeight.BOLD, 50));

Lighting(光照)

‎一种效果,用于模拟光源照射在给定内容上,可用于为平面对象提供更逼真的三维外观。

 Light.Distant light = new Light.Distant();light.setAzimuth(-135.0);Lighting lighting = new Lighting();lighting.setLight(light);lighting.setSurfaceScale(5.0);Text text = new Text();text.setText("JavaFX!");text.setFill(Color.STEELBLUE);text.setFont(Font.font(null, FontWeight.BOLD, 60));text.setX(10.0);text.setY(10.0);text.setTextOrigin(VPos.TOP);text.setEffect(lighting);

BoxBlur(方框模糊)

‎使用简单的 box 滤镜内核(在两个维度中具有可单独配置的大小)以及控制所生成模糊质量的迭代参数的模糊效果。‎

BoxBlur boxBlur = new BoxBlur();boxBlur.setWidth(10);boxBlur.setHeight(3);boxBlur.setIterations(3);Text text = new Text();text.setText("Blurry Text!");text.setFill(Color.web("0x3b596d"));text.setFont(Font.font(null, FontWeight.BOLD, 50));text.setX(10);text.setY(50);text.setEffect(boxBlur);

DisplacementMap(位移置换)

它将每个像素移动一段由指定‎‎浮点图‎‎的前两个波段指定的距离。对于输出中的每个像素,将检索、缩放和偏移中的相应数据,并按 and 属性进行偏移,再按源输入图像的大小进行缩放,并用作与目标像素的偏移量,以从源输入中检索像素数据。‎
‎请注意‎‎,映射是从目标像素到采样源像素位置的偏移量,这意味着用 的所有值填充地图会使图像向左上角移动其大小的一半,因为每个目标像素将包含来自其下方及其右侧源像素的数据。
‎另请注意,此效果不会调整输入事件的坐标或任何测量 包含性的方法。当 具有效果时,鼠标选取的结果和包含方法未定义。‎

 int width = 220;int height = 100;FloatMap floatMap = new FloatMap();floatMap.setWidth(width);floatMap.setHeight(height);for (int i = 0; i < width; i++) {double v = (Math.sin(i / 20.0 * Math.PI) - 0.5) / 40.0;for (int j = 0; j < height; j++) {floatMap.setSamples(i, j, 0.0f, (float) v);}}DisplacementMap displacementMap = new DisplacementMap();displacementMap.setMapData(floatMap);Text text = new Text();text.setX(40.0);text.setY(80.0);text.setText("Wavy Text");text.setFill(Color.web("0x3b596d"));text.setFont(Font.font(null, FontWeight.BOLD, 50));text.setEffect(displacementMap);

DropShadow(阴影)

 DropShadow dropShadow = new DropShadow();dropShadow.setRadius(5.0);dropShadow.setOffsetX(3.0);dropShadow.setOffsetY(3.0);dropShadow.setColor(Color.color(0.4, 0.5, 0.5));Text text = new Text();text.setEffect(dropShadow);text.setCache(true);text.setX(10.0);text.setY(70.0);text.setFill(Color.web("0x3b596d"));text.setText("JavaFX drop shadow...");text.setFont(Font.font(null, FontWeight.BOLD, 40));DropShadow dropShadow2 = new DropShadow();dropShadow2.setOffsetX(6.0);dropShadow2.setOffsetY(4.0);Circle circle = new Circle();circle.setEffect(dropShadow2);circle.setCenterX(50.0);circle.setCenterY(125.0);circle.setRadius(30.0);circle.setFill(Color.STEELBLUE);circle.setCache(true);

PerspectiveTransform(透视变换)

‎提供输入内容的非仿射变换的效果。最典型的是用于为其他二维内容提供"人造"三维效果,‎透视变换能够将任意四边形映射到另一个任意四边形,同时保持直线的直线度。与仿射变换不同,源中行的并行性不一定保留在输出中,
‎请注意,此效果不会调整输入事件的坐标或测量 包含的任何方法。当 具有效果时,鼠标选取的结果和包含方法未定义。‎

PerspectiveTransform perspectiveTrasform = new PerspectiveTransform();perspectiveTrasform.setUlx(10.0);perspectiveTrasform.setUly(10.0);perspectiveTrasform.setUrx(310.0);perspectiveTrasform.setUry(40.0);perspectiveTrasform.setLrx(310.0);perspectiveTrasform.setLry(60.0);perspectiveTrasform.setLlx(10.0);perspectiveTrasform.setLly(90.0);Group g = new Group();g.setEffect(perspectiveTrasform);g.setCache(true);Rectangle rect = new Rectangle();rect.setX(10.0);rect.setY(10.0);rect.setWidth(280.0);rect.setHeight(80.0);rect.setFill(Color.web("0x3b596d"));Text text = new Text();text.setX(20.0);text.setY(65.0);text.setText("Perspective");text.setFill(Color.ALICEBLUE);text.setFont(Font.font(null, FontWeight.BOLD, 36));g.getChildren().addAll(rect, text);

Reflection(倒影)

‎在实际输入内容下方呈现输入的反射版本的效果。‎

Reflection reflection = new Reflection();reflection.setFraction(0.7);Text text = new Text();text.setX(10.0);text.setY(50.0);text.setCache(true);text.setText("Reflections on JavaFX...");text.setFill(Color.web("0x3b596d"));text.setFont(Font.font(null, FontWeight.BOLD, 40));text.setEffect(reflection);

GaussianBlur(高斯模糊)

‎使用高斯模糊效果,具有可配置的半径。‎

 Text text = new Text();text.setText("Blurry Text!");text.setFill(Color.web("0x3b596d"));text.setFont(Font.font(null, FontWeight.BOLD, 50));text.setX(10);text.setY(50);text.setEffect(new GaussianBlur());

MotionBlur(运动模糊)

‎高斯运动模糊效果,具有可配置的半径和角度。‎

 MotionBlur motionBlur = new MotionBlur();motionBlur.setRadius(30);motionBlur.setAngle(-15.0);Text text = new Text();text.setX(20.0);text.setY(100.0);text.setText("Motion!");text.setFill(Color.web("0x3b596d"));text.setFont(Font.font(null, FontWeight.BOLD, 60));text.setEffect(motionBlur);

Glow(光晕)

‎一种高级效果,根据可配置的阈值,使输入图像看起来发光。‎

 Image image = new Image("boat.jpg");ImageView imageView = new ImageView(image);imageView.setFitWidth(200);imageView.setPreserveRatio(true);imageView.setEffect(new Glow(0.8));

上为原图,下为效果图

ColorAdjust(色彩调节)

一种允许按像素调整色调、饱和度、亮度和对比度的效果。‎

 ColorAdjust colorAdjust = new ColorAdjust();colorAdjust.setContrast(0.1);colorAdjust.setHue(-0.05);colorAdjust.setBrightness(0.1);colorAdjust.setSaturation(0.2);Image image = new Image("boat.jpg");ImageView imageView = new ImageView(image);imageView.setFitWidth(200);imageView.setPreserveRatio(true);imageView.setEffect(colorAdjust);

上为原图,下为效果图

SepiaTone(棕褐色调)

产生棕褐色色调效果的滤镜,类似于古董照片。

 SepiaTone sepiaTone = new SepiaTone();sepiaTone.setLevel(0.7);Image image = new Image("boat.jpg");ImageView imageView = new ImageView(image);imageView.setFitWidth(200);imageView.setPreserveRatio(true);imageView.setEffect(sepiaTone);

上为原图,下为效果图

Blend(叠加)

‎使用预定义的‎‎BlendMode‎‎之一将两个输入混合在一起的效果。‎

 Blend blend = new Blend();blend.setMode(BlendMode.COLOR_BURN);ColorInput colorInput = new ColorInput();colorInput.setPaint(Color.STEELBLUE);colorInput.setX(10);colorInput.setY(10);colorInput.setWidth(100);colorInput.setHeight(180);blend.setTopInput(colorInput);Rectangle rect = new Rectangle();rect.setWidth(220);rect.setHeight(100);Stop[] stops = new Stop[]{new Stop(0, Color.LIGHTSTEELBLUE), new Stop(1, Color.PALEGREEN)};LinearGradient lg = new LinearGradient(0, 0, 0.25, 0.25, true, CycleMethod.REFLECT, stops);rect.setFill(lg);Text text = new Text();text.setX(15);text.setY(65);text.setFill(Color.PALEVIOLETRED);text.setText("COLOR_BURN");text.setFont(Font.font(null, FontWeight.BOLD, 30));Group g = new Group();g.setEffect(blend);g.getChildren().addAll(rect, text);

JAVAFX_Effect效果介绍相关推荐

  1. tem在c语言中的作用,Temtem状态有什么效果 Temtem各状态效果介绍_游侠网

    Temtem状态有什么效果?游戏中,技能会附带各种的状态效果,很多小伙伴可能还不了解这些效果的作用吧,今天小编给大家带来Temtem各状态效果介绍,快来看一下吧. Temtem各状态效果介绍 冰和冰冻 ...

  2. php产品效果图,jQuery_基于JQuery制作的产品广告效果,效果图.如下: 动画效果介绍 - phpStudy...

    基于JQuery制作的产品广告效果 效果图.如下: 动画效果介绍:这组广告效果是打开页面后图片会自动播放,从1-5共计5张图片,如果属标放到右下角的1.2.3.4.5列表上,可以自由进行切换到自己想看 ...

  3. Libgdx粒子效果介绍与使用心得

    Libgdx粒子效果介绍与使用心得 Libgdx粒子效果介绍与使用心得 概述 前言 基本概念 粒子效果ParticleEffect 粒子效果编辑器 常用属性设置 将粒子效果加入游戏 使用心得 粒子效果 ...

  4. 解神者php奥义高阶,《解神者》技能被动奥义效果介绍 伊南娜特点分析

    在解神者X2里,伊南娜是位高火力输出型角色,她的技能既有aoe也有位移,是比较多功能的神格,具体技能都是什么呢?下面就为各位带来详细的攻略介绍,一起来看看吧! 伊南娜技能攻略 [普通攻击]三流聚海 L ...

  5. 美食杰项目(菜谱大全)效果介绍

    1.看一下要实现的效果 1.1.    点击实现家常菜谱 中华菜系  各地小吃的tab切换 1.2.   点击各个菜系实现高亮变红选中 1.3    点击工艺 口味 难度 口味下的按钮  右侧的菜品会 ...

  6. 泛目录源码(效果介绍)

    泛目录的效果主要体现在以下三个方面: 1. 方便用户查找信息:泛目录可以将网站的内容按照一定的分类方式进行整理,使用户可以更加方便地查找所需的信息.用户可以通过泛目录快速地找到自己需要的内容,提高了用 ...

  7. 美食杰 菜谱详情(效果介绍)

    实现效果: 在detail组件中:        1.根据menuld请求数据(查看数据结构),渲染页面(如果没有menuld,提示框请登录)               注意:数据结构过多,在保存到 ...

  8. JAVA描述汽车喇叭_汽车扬声器喇叭效果怎么样 汽车扬声器喇叭效果介绍【详解】...

    随着汽车在大众生活的普及,为大众带来更多工作的便捷,发挥着越来越重要的作用.很多车主在购 置汽车时,也相当注重汽车各方面的性能问题,比如说汽车音响效果,这就要关注到有关汽车扬声器 喇叭选购的相关问题. ...

  9. WPF的图片操作效果(一):RenderTransform

    一.RenderTransform类的成员: 1.TranslateTransform 平移效果 2.RotateTransform 旋转效果 3.ScaleTransform       缩放效果 ...

  10. OpenCV油画效果

    OpenCV油画效果 油画效果 介绍 代码 结果 油画效果 介绍 图像在颜色空间默认颜色空间COLOR_BGR2GRAY中转换.对于图像中的每个像素,程序都会计算尺寸为2 * size + 1的相邻像 ...

最新文章

  1. JavaScript异步流程控制的前世今生
  2. FreeRTOS(四)——内存管理
  3. java代码二进制转为十六进制_Java 中二进制转换成十六进制的两种实现方法
  4. 第 6 章 Harddisk IO
  5. 你连原理都还没弄明白?机甲风暴java破解版下载
  6. (常用API)正则表达式切割练习
  7. 描述java源程序构成_Java第二章Java程序设计
  8. JSON入门之二:org.json的基本用法
  9. 动手写的Python的HTML语法分析器(面向对象)
  10. JSR 310新日期/时间API的自定义JSR 303 Bean验证约束
  11. 给radio添加点击事件
  12. office2007过期后没有输入序列号对话框的激活方法
  13. Drools——什么是规则
  14. 大话私服虚拟服务器,大话西游私服服务器
  15. 电脑装两个硬盘在计算机只显示一个,电脑有两个硬盘,如何去掉机械硬盘中的那套系统?...
  16. 马斯克辞任CEO,产品经理如何用项目协作软件武装自己?
  17. 平均获客成本_获客成本(线上,线下)如何计算?
  18. vue表单项目解决安卓键盘遮挡输入框问题
  19. TLS 1.3科普——新特性与协议实现
  20. 基于python的智能家居_基于Python的智能家居自动化测试脚本设计及实现

热门文章

  1. 置换密码及其python实现
  2. springboot整合es实现聚合搜索(api搜索版)
  3. 一个记账易app开发
  4. 面试算法 香槟塔 ,算法:暴力算法
  5. UnicodeTOGB,能够将Unicode串转换成GB码,方便开发。
  6. 【读】自动文摘——预备
  7. *TEST 7 for NOIP 玄学解题 (150/300)
  8. PCL-点云处理(一)
  9. 2021年展望Android原生开发的现状,真香!
  10. 趋势科技安全威胁病毒预警(本周十大病毒排名)