JavaFX第五篇 Image图片加载处理

news2024/11/20 15:31:20

JavaFX第五篇 Image图片加载处理

  • 1. 代码
  • 2. 讲解
  • 3. 代码仓

图片已经成为每个网站的必备了,不仅可以提升个人网站的标识度而且还可以美化网站,
所以这里需要讲解一下如何加载图片,展示到前台给用户查看。
本次只是简单的讲解如何展示使用,具体的API可以到官网或网上查找资料。

在这里插入图片描述

1. 代码

这里演示的只是展示一张普通的png图片,
逻辑和注意事项可以查看注释。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

import java.io.IOException;
import java.net.URL;

/**
 * 图片演示: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/image/Image.html
 *
 * 支持图片的格式:BMP、GIF、JPEG、PNG
 */
public class ImageDemo extends Application {
    /**
     * 程序入口
     *
     * @param args 参数
     */
    public static void main(String[] args) {
        launch(args);
    }

    /**
     * 加载图片
     *
     * 在后台加载图像,在加载时显示占位符(假设有一个ImageView节点在某处显示此图像)。该图像位于类路径的默认包中
     * Image image1 = new Image("/flower.png", true);
     *
     * 加载图像并将其大小调整为100x150,而不保留其原始宽高比。类路径的Res包
     * Image image2 = new Image("my/res/flower.png", 100, 150, false, false);
     *
     * 加载图像并将其宽度调整为100,同时保留其原始长宽比,使用更快的过滤方法
     * Image image3 = new Image("http://sample.com/res/flower.png", 100, 0, false, false);
     *
     * 加载图像并仅在一维上将其调整为100的高度和原始宽度,而不保留原始长宽比。图像位于当前工作目录中
     * Image image4 = new Image("file:flower.png", 0, 100, false, false);
     *
     * @param stage 舞台
     */
    @Override
    public void start(Stage stage) throws IOException {
        // 这里是之间加载静态文件里面文件
        Image image = new Image("static/img/yiyi-fx.png");
        ImageView imageView = new ImageView();
        imageView.setImage(image);
        StackPane pane = new StackPane();
        pane.getChildren().add(imageView);
        Scene scene = new Scene(pane, 800, 600);
        stage.setTitle("标题信息");
        stage.setScene(scene);
        stage.show();
    }
}

目录结构如下图所示:

在这里插入图片描述

可以看到采用ClassPath方式,直接相对于classes文件夹。
在这里插入图片描述

运行结果:
在这里插入图片描述

2. 讲解

Image这个类就是控制图像,可以从本地、远程服务器上加载图像。
官网地址:https://docs.oracle.com/javase/8/javafx/api/javafx/scene/image/Image.html

  • 可以调整图片大小(高度、宽度)

  • 纵横比缩放

这里加载图片的方式有三种:

  1. 网络URL: new Image(“https://gitee.com/jack0240/one-by-one/raw/master/yiyi.png”);
  2. 本地:new Image(“file:D://yiyi.png”);或者之间把前缀file:去掉。
  3. ClassPath:new Image(“static/img/yiyi-fx.png”); 这里相对于打包后的classes文件夹。

ImageView 加载到场景里面的节点,用于绘制加载图像类的图像。
官网地址:https://docs.oracle.com/javase/8/javafx/api/javafx/scene/image/ImageView.html

  • 调整显示图像的大小(保留或不保留原始纵横比)
  • 2D(旋转)
  • smooth

3. 代码仓

https://gitee.com/jack0240/yiyi-fx
这里是一一系统的JavaFX技术的衍生版,
主要是搭建Java客户端应用的快速快速开发。
JavaFX基础框架,一一出品,必出精品。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/680605.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【算法证明 七】深入理解深度优先搜索

深度优先搜索包含一个递归,对其进行分析要复杂一些。与上一篇文章一样,还是给节点定义几个状态,然后详细分析深度优先搜索算法有哪些性质。 算法描述 定义状态 v . c o l o r :初始状态为白色,被发现时改为灰色&…

Mysql的SQL性能分析【借助EXPLAIN分析】

性能分析 要说sql有问题,需要拿出证据,因此需要性能分析 Mysql查询优化器(Mysql Query Optimizer) Mysql中有专门负责优化SELECT语句的优化器模块,主要功能:通过计算分析系统中收集到的统计信息&#xf…

Xline v0.4.1: 一个用于元数据管理的分布式KV存储

Xline是什么?我们为什么要做Xline? Xline是一个基于Curp协议的,用于管理元数据的分布式KV存储。现有的分布式KV存储大多采用Raft共识协议,需要两次RTT才能完成一次请求。当部署在单个数据中心时,节点之间的延迟较低&a…

python机器学习——分类模型评估 分类算法(k近邻,朴素贝叶斯,决策树,随机森林,逻辑回归,svm)

目录 分类模型的评估模型优化与选择1.交叉验证2.网格搜索 【分类】K近邻算法【分类】朴素贝叶斯——文本分类实例:新闻数据分类 【分类】决策树和随机森林1.决策树2.决策树的算法3.代码实现实例:泰坦尼克号预测生死 【集成学习】随机森林1.集成学习2.随机…

LOMO:在受限资源上全参数微调

LOMO:Full Parameter Fine-Tuning for large language models with limited resources IntroductionMethodRethink the functionality of optimizerUsing SGD LOMO: LOw-Memory Optimization 实验参考 Introduction 在这篇文章中,作者的目的…

Go 语言进阶 - 工程进阶

前言: \textcolor{Green}{前言:} 前言: 💞这个专栏就专门来记录一下寒假参加的第五期字节跳动训练营 💞从这个专栏里面可以迅速获得Go的知识 今天的内容包括以下两个内容。关于实践的内容我会在后续发布出来。 01.语言…

新零售破局丨2023年探索全新电商运维模式——永倍达模式深度解析

新零售破局丨2023年探索全新电商运维模式——永倍达模式深度解析 大家好!我是微三云胡佳东,一家专业的电商软件开发公司的负责人。 近年来,随着电商的高速发展,不少电商平台成为了市场经济的优质榜样,互联网市场竞争也…

设计模型学习-UML图

1,简介 UML图有很多种类型,但掌握其中的类图、用例图和时序图就可以完成大部分的工作。其中最重要的便是「类图」,它是面向对象建模中最常用和最重要的图,是定义其他图的基础。 类图主要是用来显示系统中的类、接口以及它们之间的…

Ubuntu环境下读取罗技G29方向盘信息

本篇博客最早发布于实验室公共博客,但已无人维护,现迁移至个人博客 引言 实验室有这么酷的驾驶设备,来了一年还没有实际操作过,早就蠢蠢欲试了,哈哈哈不过之前负责的师兄还在就一直没敢用,现在他毕业了就可…

rust abc(2): 从 hello world 到整数、浮点类型

文章目录 1. 目的2. 搞懂 hello world2.1 代码2.2 fn 的含义2.3 main() 的含义2.4 println! 的含义2.5 行尾分号是必要的吗?2.6 左花括号可以放下一行吗? 3. 数据类型的例子3.1 代码3.2 rust 的注释3.3 编译运行结果3.4 基本数据类型 4. 整数类型的例子4…

SpringMVC系列-3 拦截器

背景 本文作为 SpringMVC系列 的第三篇,以SpringMVC系列-2 HTTP请求调用链为基础,介绍Spring MVC的拦截器。 1.拦截器 SpringMVC的核心实现是DispatcherServlet,本质是一个Servlet实现类,拦截器位于DispatcherServlet逻辑中&am…

MySQL进阶SQL语句2之表连接

目录 1.连接查询 1.1inner(内连接) 1.2left join(左连接) 1.3right join(右连接) 1.4直接查询两个表相同的字段值的数据 2. VIEW(视图) 2.1create view(创建视图…

设计模式之迭代器模式笔记

设计模式之迭代器模式笔记 说明Iterator(迭代器)目录迭代器模式示例类图学生类抽象迭代器角色接口具体迭代器角色类抽象聚合角色接口具体聚合角色类测试类 说明 记录下学习设计模式-迭代器模式的写法。JDK使用版本为1.8版本。 Iterator(迭代器) 意图:提供一种方法顺序访问一…

Python2、3下载安装、环境配置和Python2、3版本共存配置

一、python 版本简介 python 包括 python2、python3 两个大版本,其中 python3 改进了 python2 的一些不足,但由于以前很多应用是用 python2 开发的,维护这些应用还需用到 python2,故 python2 尚未被完全淘汰。 北京时间 2020 年 4…

近期参与开源的心得体会

引言 最近随着Kepler项目加入CNCF sandbox,写一篇blog来记录下参与这个项目半年的发展的心得体会。 运营 项目的运营最好还是专注于项目自身的发展,围绕项目的特点,创新点入手,为大家提供价值,从而自然而然的扩大自…

【计算机网络】计算机网络期末自测题(一)答案

2019-2020 学年第 2 学期自测题答案及评分标准 (卷 1) 计算机网络 一、 填空题: 参考答案: 1 、 01000101 、11100111 3 、 100Mbps、双绞线、基带、全双工 [10Mbps 要求单位] 4 、 报文 5 、 ICMP 6 、 虚电路 7 、 距离矢量、链路状态 …

什么是网络安全?

文章目录 一、概述1.1 网络安全的指标1.2 网络安全的特征 二、网络安全威胁2.1 黑客能破坏的2.2 Internet安全手段2.2.1 端口扫描2.2.2 分组嗅探sniffing2.2.3 IP欺骗Spoofing 2.3 Internet安全威胁2.3.1 DOS拒绝服务 三、密码学3.1 对称加密算法3.1.1 传统加密3.1.2 现代加密技…

Redis(七):Redis基础入门

Redis基础入门 Redis用途Redis优缺点docker运行RedisRedis常用命令String命令Hash命令List命令Set命令ZSet命令全局命令 Redis事务Redis持久化机制RDBAOFRDBAOF(默认) Redis内存淘汰机制Redis对过期Key的处理 Redis用途 Redis是一种开源的NoSQL内存数据库…

【MySql】多版本并发控制MVCC前置知识——隐藏字段、undo日志与Read View

文章目录 3个记录隐藏列字段undo日志模拟 MVCCRead View 数据库并发的场景有三种: 读-读 :不存在任何问题,也不需要并发控制 读-写 :有线程安全问题,可能会造成事务隔离性问题,可能遇到脏读,幻读…

UOS系统下搭建qtcreator编译环境

文章目录 前言一、依赖包说明二、No valid kits found 问题现象三、No valid kits found 问题解决1.查找qt安装路径2.设置Qt Versions3.构建套件(kit)下选择Qt版本4.重新添加工程 前言 本文记录了在UOS系统下如何安装qtcreator以及涉及的依赖包安装&…