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
-
可以调整图片大小(高度、宽度)
-
纵横比缩放
这里加载图片的方式有三种:
- 网络URL: new Image(“https://gitee.com/jack0240/one-by-one/raw/master/yiyi.png”);
- 本地:new Image(“file:D://yiyi.png”);或者之间把前缀file:去掉。
- 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基础框架,一一出品,必出精品。