`

JavaFX学习之Image

阅读更多
  ImageView and Image
ImageView iv = new ImageView(image);
		iv.setFitWidth(200);
		iv.setPreserveRatio(true);
		iv.setSmooth(true);
		
		ImageView iv2 = new ImageView(image);
		iv2.setViewport(new Rectangle2D(192, 256, 300, 300));

setFitHeight(double value)
setFitWidth(double value) 设置ImageView的大小
setPreserveRatio(boolean value) setPreserveRatio(boolean)设置比率,按比率去缩小放大。当你只设置了宽度时,宽度会缩小,但是高度仍然不变,图像就畸形了。若设置为true,则高度也会按比率缩小。
setSmooth(boolean value) 若为true,则用较好的过滤算法花时间,若为false,则快速
setViewport(Rectangle2D value) 设置可视口,因为图片的大小经常大于你ImageViw的设置的大小,而你不想按比率缩放,只想显示图像的一部分,看一下Rectangle2D的参数Rectangle2D(double minX, double minY, double width, double height) minX,Y图片左上的位置,width,height宽度高度,这样就可以从图片上截取一块区域,然后显示出来。

   WritableImage  可编辑的image
   PixelReader  获取image像素数据
  PixelWriter  写入image像素数据
Image image = new Image("http://docs.oracle.com/javafx/"
        + "javafx/images/javafx-documentation.png");
        ImageView imageView = new ImageView();
        imageView.setImage(image);
        // Obtain PixelReader
        PixelReader pixelReader = image.getPixelReader();
        System.out.println("Image Width: "+image.getWidth());
        System.out.println("Image Height: "+image.getHeight());
        System.out.println("Pixel Format: "+pixelReader.getPixelFormat());
        
        // Create WritableImage
         WritableImage wImage = new WritableImage(
                 (int)image.getWidth(),
                 (int)image.getHeight());
         PixelWriter pixelWriter = wImage.getPixelWriter();
       
        // Determine the color of each pixel in a specified row
        for(int readY=0;readY<image.getHeight();readY++){
            for(int readX=0; readX<image.getWidth();readX++){
                Color color = pixelReader.getColor(readX,readY);
                System.out.println("\nPixel color at coordinates ("+
                        readX+","+readY+") "
                        +color.toString());
                System.out.println("R = "+color.getRed());
                System.out.println("G = "+color.getGreen());
                System.out.println("B = "+color.getBlue());
                System.out.println("Opacity = "+color.getOpacity());
                System.out.println("Saturation = "+color.getSaturation());
                
                // Now write a brighter color to the PixelWriter.
                color = color.brighter();
                pixelWriter.setColor(readX,readY,color);
            }
        }
        
        // Display image on screen
        //imageView.setImage(wImage);
        StackPane root = new StackPane();
        root.getChildren().add(imageView);
        Scene scene = new Scene(root, 300, 250);
        primaryStage.setTitle("Image Write Test");
        primaryStage.setScene(scene);
        primaryStage.show();


   PixelFormat   定义图像像素数据的格式
   WritablePixelFormat  可编辑图像像素格式
PixelFormat<ByteBuffer> pixelFormat = PixelFormat.getByteRgbInstance();
pixelWriter.setPixels(int x, int y, int w, int h, PixelFormat<ByteBuffer> pixelformat, byte[] buffer, int offset, int scanlineStride)




分享到:
评论

相关推荐

    JavaFX+Jfoenix 学习笔记(十)--系统托盘及解决中文乱码问题源码

    在本篇JavaFX+Jfoenix学习笔记中,我们将探讨如何在JavaFX应用程序中实现系统托盘功能,以及如何解决可能出现的中文乱码问题。系统托盘是现代桌面应用中常见的一种特性,允许用户在关闭主窗口后,仍然可以通过托盘...

    JavaFX简易图片处理

    首先,JavaFX 提供了 `javafx.scene.image` 包,该包中的 `ImageView` 类是显示图像的主要组件。你可以通过构造函数加载本地或网络上的图像,然后将其添加到场景(Scene)中。此外,`ImageView` 还支持缩放、旋转、...

    JavaFX Demo学习2-----ImageRollover

    在"JavaFX Demo学习2-----ImageRollover"这个主题中,我们将深入探讨如何使用JavaFX来实现图像鼠标悬停时的效果变化,即Image Rollover效果。这种效果常见于网页设计和图形用户界面开发中,当鼠标指针移到图像上时,...

    javafx-src.zip

    4. **2D和3D图形**:JavaFX提供了强大的2D和3D图形库,如javafx.scene.shape和javafx.scene.image,可以创建复杂的几何形状、图像处理以及动画效果。 5. **媒体处理**:JavaFX内建了媒体API(javafx.media),可以...

    JavaFx本质论源代码

    对于2D和3D图形的支持,JavaFX提供了javafx.scene.shape和javafx.scene.image包,其中包含各种形状和图像类。同时,javafx.scene.media包提供了音频和视频的播放功能,可以创建多媒体应用程序。 在"EssentialJavaFX...

    javaFX 飞机游戏

    在这个“javaFX 飞机游戏”项目中,开发者利用 JavaFX 的特性构建了一个飞机大战游戏,旨在学习和掌握 JavaFX 的用法。 首先,`Shooter.iml` 文件是 IntelliJ IDEA 创建的项目配置文件,它包含了项目的模块信息,如...

    javaFx版泡泡龙和

    总的来说,JavaFX版泡泡龙的开发涵盖了Java编程、图形界面设计、游戏逻辑实现等多个方面,对于学习和掌握JavaFX技术以及提升游戏开发能力都有很大帮助。通过阅读和分析项目的源码,可以深入理解上述知识点的具体应用...

    Getting Started with JavaFX

    通过学习其基础概念和实践,你可以迅速掌握如何利用JavaFX创建引人入胜的应用程序,无论是在桌面环境还是移动设备上。对于那些已经熟悉Java的开发者来说,JavaFX是一个值得探索的领域,它将Java的强大功能与现代UI...

    基于Javafx的字符画生成器

    4. **JavaFX图像组件**:JavaFX提供`javafx.scene.image.Image`类用于处理图像,同时有`ImageView`类可以显示图像。在字符画生成器中,这两个类可以帮助加载和显示用户上传的原始图片。 5. **字符映射**:开发者...

    使用Java开发CLI、Desktop(JavaFX)、Web(SpringBoot)项目.zip

    总的来说,这个压缩包资源对于学习和实践全栈Java开发非常有帮助,涵盖了从简单的命令行工具到复杂的Web应用的开发技术,并涉及到优化工具GraalVM。掌握这些知识将使开发者能够灵活应对各种应用场景。

    Java图像处理类库 Java Image Filters

    在Java中,主要的图像处理API是Java AWT(Abstract Window Toolkit)和Java Swing中的`java.awt.image`包,以及JavaFX中的`javafx.scene.image`包。 Java AWT提供了基本的图像处理能力,例如`BufferedImage`类用于...

    JavaFx开发的经典魔塔

    JavaFX提供了Media类来处理音频,而图像通常通过Image类加载,并绑定到ImageView上。 8. **用户交互**:JavaFX提供了丰富的用户交互功能,如对话框、提示信息等,可以提升游戏的用户体验。开发者还可以利用CSS来...

    GraalVM编译的JavaFX浏览器原生游戏示例和源码-计算机进化

    标题中的“GraalVM编译的JavaFX浏览器原生游戏示例和源码-计算机进化”揭示了这个压缩包包含的内容是关于使用GraalVM编译的JavaFX技术来开发一个原生游戏的实例,同时提供了源代码,便于学习和理解。计算机进化可能...

    基于javafx的java推箱子小游戏

    JavaFX是一种用于构建桌面应用、Web应用和移动应用的Java平台,它提供了丰富的图形用户界面(GUI)组件和强大的2D/3D图形处理能力。...这个游戏项目对于学习JavaFX和游戏开发的初学者来说,是一个很好的实践案例。

    javafx-hello-world:此存储库内容 JavaFX 项目

    7. **打包与部署**:学习如何将 JavaFX 应用打包成可执行 JAR 或者进行跨平台的部署,例如使用 OpenJFX SDK 和 GraalVM Native Image。 总的来说,“javafx-hello-world”项目为学习 JavaFX 提供了一个基础起点,...

    BUAA软件学院大二Java大作业,仅使用JavaFX实现了一个Mario游戏.zip

    JavaFX提供了Image类来处理图像,开发者可能还需要了解如何使用Media类处理音频文件。同时,为了提高游戏的启动速度和运行效率,资源的缓存和预加载策略也是必不可少的。 最后,考虑到游戏的可玩性和挑战性,关卡...

    使用java 和 javafx完成的击落陨石的小游戏

    JavaFX提供Media类来播放音频,Image类加载图片。资源的加载和缓存策略也是优化游戏性能的重要一环。 7. 测试与调试:开发过程中,单元测试和集成测试是必不可少的,确保游戏各个组件的正确性。Java的JUnit框架可以...

    JavaFx实现拼图游戏

    在本文中,我们将深入探讨如何使用JavaFX实现一个拼图游戏。JavaFX是一个强大的图形用户界面(GUI)工具包,允许开发者创建丰富的...这不仅有助于提高对JavaFX的理解,也是学习GUI编程和事件处理机制的一个良好实例。

    JavaFX实现石头剪刀布小游戏

    总之,通过这个JavaFX的“石头、剪刀、布”小游戏,我们可以学习到如何使用JavaFX创建图形用户界面,处理用户输入,以及如何将基本的编程逻辑与UI交互结合。这不仅有助于理解JavaFX的核心概念,也有助于提升软件开发...

    changeImage

    8. 第三方库:尽管没有明确指出,但"changeImage"可能依赖于一些图像处理库,如Java的AWT/Swing库,或者更专业的库如OpenCV、JavaFX的Media API等,来实现其图像处理功能。 9. 数据结构与算法:在实现图像处理功能...

Global site tag (gtag.js) - Google Analytics