Java制作电子相册新技能

news/2024/11/8 23:51:13/

图片

Image可以用来加载多种渠道的图片。

支持bmp、jpg、gif、png图片格式。

定义Image

Image image = new Image(URL);

其中,URL可以指向网络图片、资源图片或本地图片。示例:

Java制作电子相册新技能

网络图片

网络图片是指存储在服务器上,可通过网络访问的图片资源。网络图片通常遵循http或https协议。例如:

Image image = new Image("https://pic.netbian.com/uploads/allimg/211108/234818-1636386498b2ad.jpg");

本地图片

本地图片是指存储在本地的图片资源。本地图片需遵循file协议。例如:

Image image = new Image("file:C://SunShangXiang.jpg");

可改写为:

File file = new File("C://SunShangXiang.jpg");
String uri = file.toURI().toString();
Image image = new Image(uri);

资源图片

URL url = ImageApplication.class.getResource("/images/logo.png");Image image = new Image(url.toURI().toString());

完整邀请码代码

package io.weijunfu.javafx;import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;import java.io.File;
import java.net.URL;public class ImageApplication extends Application {@Overridepublic void start(Stage stage) throws Exception {BorderPane pane = new BorderPane();// image 用于加载图片//        来自网络图片
//        Image image = new Image("https://pic.netbian.com/uploads/allimg/211108/234818-1636386498b2ad.jpg");//        来自本地图片
//        Image image = new Image("file:C://SunShangXiang.jpg");//        File file = new File("C://SunShangXiang.jpg");
//        String uri = file.toURI().toString();
//        Image image = new Image(uri);//        来自资源文件URL url = ImageApplication.class.getResource("/images/logo.png");Image image = new Image(url.toURI().toString());double width = image.getWidth();double height = image.getHeight();// imageView 用于显示图片ImageView imageView = new ImageView();imageView.setImage(image);pane.setCenter(imageView);// 创建场景Scene scene = new Scene(pane, width, height);// 给舞台添加场景stage.setScene(scene);// 设置窗口标题stage.setTitle("图片展示");// 显示舞台stage.show();}public static void main(String[] args) {launch(args);}
}

电子相册

Java制作电子相册新技能

获取图片存储目录

        URL url = AlbumApplication.class.getResource("/images/album");  // 图片存储目录File file = new File(url.toURI());if(file.exists() && file.isDirectory()) {files = file.listFiles(new FilenameFilter() {@Overridepublic boolean accept(File dir, String name) {int index = name.lastIndexOf(".");String suffix = name.substring(index).toLowerCase(Locale.ROOT);switch (suffix) {   // 仅获取jpg和png格式的图片case ".jpg":case ".png":return true;}return false;}});if(files.length > 0) { // 默认显示第一张照片Image image = new Image(files[currentIndex].getAbsolutePath());imageView.setImage(image);}}

上一张 & 下一张

// 上一张
private void prevPhone() {currentIndex--;currentIndex = currentIndex < 0 ? files.length-1 : currentIndex;imageView.setImage(new Image(files[currentIndex].getAbsolutePath()));
}
// 下一张
private void nextPhone() {currentIndex++;currentIndex = currentIndex >= files.length ? 0 : currentIndex;imageView.setImage(new Image(files[currentIndex].getAbsolutePath()));
}

完整代码

package io.weijunfu.javafx;import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;import java.io.File;
import java.io.FilenameFilter;
import java.net.URL;
import java.util.Arrays;
import java.util.Locale;/*** 电子相册** @Author: weijunfu<ijunfu@163.com>* @Date: 2021-11-11 22:29* @Version: 1.0.0*/
public class AlbumApplication extends Application {private final static double width = 320;private final static double height = 240;private Integer currentIndex = 0;private File[] files;private ImageView imageView = new ImageView();@Overridepublic void start(Stage stage) throws Exception {AnchorPane pane = new AnchorPane();//        ImageView imageView = new ImageView();imageView.setFitWidth(width);imageView.setFitHeight(height);imageView.setX(0);imageView.setY(0);pane.getChildren().add(imageView);URL url = AlbumApplication.class.getResource("/images/album");  // 图片存储目录File file = new File(url.toURI());if(file.exists() && file.isDirectory()) {files = file.listFiles(new FilenameFilter() {@Overridepublic boolean accept(File dir, String name) {int index = name.lastIndexOf(".");String suffix = name.substring(index).toLowerCase(Locale.ROOT);switch (suffix) {   // 仅获取jpg和png格式的图片case ".jpg":case ".png":return true;}return false;}});if(files.length > 0) { // 默认显示第一张照片Image image = new Image(files[currentIndex].getAbsolutePath());imageView.setImage(image);}}Label leftLabel = new Label("<");leftLabel.setLayoutX(0);leftLabel.setLayoutY(0);leftLabel.setPrefWidth(50);leftLabel.setPrefHeight(height);leftLabel.setStyle("-fx-background-color: purple; ");leftLabel.setOpacity(0.2);leftLabel.setOnMouseClicked(keyEvent -> {prevPhone();});//        pane.getChildren().add(leftLabel);Label rightLabel = new Label(">");rightLabel.setLayoutX(width-50);rightLabel.setLayoutY(0);rightLabel.setPrefWidth(50);rightLabel.setPrefHeight(height);rightLabel.setStyle("-fx-background-color: purple; ");rightLabel.setOpacity(0.2);rightLabel.setOnMouseClicked(keyEvent -> {nextPhone();});//        pane.setRight(rightLabel);pane.getChildren().addAll(leftLabel, rightLabel);Scene scene = new Scene(pane, width, height);stage.setScene(scene);stage.setTitle("电子相册");stage.show();}/*** 上一张照片* @Author: weijunfu<ijunfu@163.com>* @Version: 1.0.0* @Date: 2021/11/12 1:03* @param* @Return: void*/private void prevPhone() {currentIndex--;currentIndex = currentIndex < 0 ? files.length-1 : currentIndex;imageView.setImage(new Image(files[currentIndex].getAbsolutePath()));}/*** 下一张照片* @Author: weijunfu<ijunfu@163.com>* @Version: 1.0.0* @Date: 2021/11/12 1:02* @param * @Return: void*/private void nextPhone() {currentIndex++;currentIndex = currentIndex >= files.length ? 0 : currentIndex;imageView.setImage(new Image(files[currentIndex].getAbsolutePath()));}public static void main(String[] args) {launch(args);}
}

http://www.ppmy.cn/news/317824.html

相关文章

数字电子时钟的设计与实现

摘 要 钟表的数字化给人们生产生活带来了极大的方便&#xff0c;大大的扩展了原先钟表的报时。诸如&#xff0c;定时报警、按时自动打铃、时间程序自动控制等&#xff0c;这些&#xff0c;都是以钟表数字化为基础的。功能数字钟是一种用数字电路实现时、分、秒、计时的装置&…

stm32f103+FFT+OLED的音乐频谱制作(只需三步即可)

效果演示&#xff1a;FFT音乐频谱DIY STM32OLED_哔哩哔哩_bilibili 制作过程&#xff1a; 1.准备材料&#xff1a; stm32f103核心板 1块 OLED12864显示屏 1块&#xff08;SPI接口&#xff09; 声音检测传感器 1块 &#xff08;咪头放大电路 可以网上买现成的模块&#xff…

python电子相册制作软件下载_艾奇KTV电子相册制作软件

艾奇KTV电子相册制作是一款功能超强的电子相册和卡拉ok视频制作软件。可以把您的照片和视频配上音乐和歌词字幕&#xff0c;制作成各种格式的视频电子相册。 功能介绍 只需简单的3步操作&#xff0c;就能输出DVD、VCD、MP4、AVI、FLV、ipad、IPhone等十余种高清画质的视频格式。…

51单片机制作简易计算器(动态数码管、矩阵按键)

简易计算器 实验说明硬件设计动态数码管介绍矩阵按键介绍行列扫描线翻转法 硬件实物连接 软件设计AC代码&#xff1a;main函数代码&#xff1a; 实验现象实验总结 实验说明 利用51单片机和keil uVision4共同完成通过按键来控制8位共阴数码管显示数据&#xff0c;并且通过按键来…

相册计算机软件,电脑相册制作软件免费版,windows自带安全又免费相册制作软件...

很多朋友想在电脑上把自己拍的一些视频和照片做成相册或者是相册视频&#xff0c;那么&#xff0c;就会找电脑相册制作软件免费版&#xff0c;实际上&#xff0c;网络上很多稍微好用的相册制作软件基本都是收费的&#xff0c;免费相册制作软件一般都会功能上有所限制、功能不全…

Html 3D旋转相册制作

程序示例精选 Html 3D旋转相册制作 如需安装运行环境或远程调试&#xff0c;见文章底部微信名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<Html 3D旋转相册制作>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 学习…

基于STM32的简易数码相册

原理&#xff1a;在板子上插入SD卡&#xff0c;并使用FATFS文件系统来循环读取并显示SD卡内的指定目录内的所有BMP图片。 这是显示效果&#xff08;能上传视频的话就能看到循环显示效果&#xff09;&#xff1a; 因为图片显示函数显示的是24位BMP图片转换后的16位BMP图片&#…

数字钟的设计与制作

2006-06-13 11:28:37 数字钟的设计与制作 数字钟是一种用数字电路技术实现时、分、秒计时的装置&#xff0c;与机械式时钟相比具有更高的准确性和直观性&#xff0c;且无机械装置&#xff0c;具有更更长的使用寿命&#xff0c;因此得到了广泛的使用。 数字钟从原理上讲是一种典…