iphone拷贝照片中间带E自动去重软件,以及java程序如何打包成jar和exe

文章目录

  • 一、前提
  • 二、问题描述
  • 三、原始处理方式
  • 四、程序处理
    • [4.1 java程序如何打包exe](#4.1 java程序如何打包exe)
      • [4.1.1 首先打包jar](#4.1.1 首先打包jar)
      • [4.1.2 开始生成exe](#4.1.2 开始生成exe)
      • [4.1.3 软件使用方式](#4.1.3 软件使用方式)
    • [4.2 更换图标](#4.2 更换图标)
      • [4.2.1 更换swing的打包jar图标](#4.2.1 更换swing的打包jar图标)
      • [4.2.2 更换exe图标](#4.2.2 更换exe图标)
    • [4.3 如何使生成的exe在没有java环境的电脑上运行](#4.3 如何使生成的exe在没有java环境的电脑上运行)
      • [4.3.1 Inno Setup打包](#4.3.1 Inno Setup打包)
    • [4.4 附件下载](#4.4 附件下载)

一、前提

用苹果手机照相,有不使用默认的4:3拍照的习惯。

如果只使用默认4:3比例拍照,后面的内容均可跳过。

二、问题描述

我们在将iphone照片拷贝到电脑的过程中(USB接入电脑拷贝的方式),如果喜欢使用16:9来拍照或者出现过不是默认的4:3拍照的情形,你会发现拷贝出来的照片 总是有一模一样的两张,只不过一张是4:3的一张是16:9的(假设开的是16:9),因为iphone的其他比例方式是通过在4:3的比例上剪裁出来的16:9。

我们暂且管4:3叫原片,4:3的比例为A,16:9的比例为B,那么实际的情况是:

  1. A为原片,B是在A的基础上剪裁的
  2. 真正通过USB方式拷贝的,会同时存在A与B
  3. A与B文件名几乎相同,唯一的区别是B的名称中间加了个E,例如:A-->IMG_3854.HEIC,B-->IMG_E3854.HEIC
  4. 只有HEIC的苹果相机照片会有这个问题,png等不存在
  5. 我们需要B存在时留下B,否则留下A

三、原始处理方式

最消耗时间的方式肯定是用肉眼去对比,一张一张的删,只有对比过才知道有多么麻烦

四、程序处理

于是想到用程序来解决,具体代码就不讲了,流程无非就是:

  1. 将所有iphone拷贝出来的照片文件夹放到一个文件夹路径下
  2. 提供这个文件夹的路径,可以是文件夹套着文件夹
  3. 根据这个路径,去遍历该文件夹以及该文件的所有子文件夹下每一个HEIC扩展名 照片,若一个照片名字同时存在中间带E和不带E的,则删除不带E的,否则跳过

4.1 java程序如何打包exe

4.1.1 首先打包jar

File--->Project Structure--->Artifacts,点加号

选择需要生成jar的Module。
注意:此处一定要把只与本次相关的程序单独放在一个工程或者一个Module,否则生成的jar会包含所有的无关的类。

单击OK,然后Build-->Build Arrifacts-->Build,即可在刚刚设置的路径下生成jar包


如果在生成的过程中遇到如下报错,是因为META-INF已经存在了,删了重新生成即可。

4.1.2 开始生成exe

注意:此种方式生成的exe不能在没有java环境的电脑上运行,怎么解决后面说

通过jar生成exe,我们选择launch4j来生成

launch4j官网:https://launch4j.sourceforge.net/

安装后打开,有几个必填项:

1、Basic

2、Header

默认是GUI,就是一个干净的窗口。如果选择Console,打开exe时还会附带一个cmd窗口 用于控制台输出

console就是这个效果:

3、其他的classpath、JRE什么的,用默认的就行了 不用管

注意:如果需要在没有java环境的电脑上运行,此处JRE需要配一下,怎么配跳转至4.3

4、然后直接点上方的小齿轮就能生成了

随便输入个保存xml,回头删了即可

运行效果如下:

没有java环境会报这个

4.1.3 软件使用方式

  1. 输入需要清理的照片路径,该路径随便填,支持递归。例如:E:\新建文件夹,则可以清理该文件夹下的内容以及其所有子文件夹内容
  2. 单击 [开始清理] 按钮,程序会自动获取E:\新建文件夹下所有文件夹内的照片,逐个清理重复的照片
  3. 清空输出文本\] 按钮,可清除所有绿色文字 ![在这里插入图片描述](https://file.jishuzhan.net/article/1692051791308394498/ffb62229a62848a39940c5c782a0f7ea.png)

默认的图标如果嫌丑的话,可以更换ico图标,首先去网上下载或者自己制作一个ico图标

4.2.1 更换swing的打包jar图标

这个图标,可以使用png、jpg。ico不行

java 复制代码
		// 设置左上角图标
        ImageIcon imageIcon = new ImageIcon("C:\\Users\\xxx\\Desktop\\Backpack.png");
        jFrame.setIconImage(imageIcon.getImage());

运行效果

4.2.2 更换exe图标

Launch4j的Basic添加Icon路径,然后点齿轮生成exe

4.3 如何使生成的exe在没有java环境的电脑上运行

首先需要把jdk下面的jre文件夹完整拷贝出来,我的路径是:D:\Java\jdk1.8.0_162\jre,和最终生成的exe放到一个目录下,然后把Launch4j的JRE路径改成.\jre,说明运行的jre环境是同一目录的这个,生成exe

然后有两个方案:

方案一:把jre文件夹和exe程序打成压缩包,别人在使用时,不能移动任何一个文件夹的位置,否则会出现问题

方案二:直接打包成Setup文件,使用时先安装,后使用。

4.3.1 Inno Setup打包

我们来说方案二

首先去下载Inno Setup,是一个安装制作软件,使用其可以将多个文件/文件夹打包成安装包

官网:https://jrsoftware.org/isinfo.php











如果在生成的过程中因为什么被打断了,可以通过如下按钮重新生成

最终生成了一个Output文件夹

打开之后就是安装包

双击安装包试一下,大功告成!

4.4 附件下载

需要java环境的exe见文章头部

不需要java环境的安装包:https://download.csdn.net/download/qq_26012495/88210285

相关推荐
李少兄10 分钟前
Unirest:优雅的Java HTTP客户端库
java·开发语言·http
此木|西贝15 分钟前
【设计模式】原型模式
java·设计模式·原型模式
可乐加.糖32 分钟前
一篇关于Netty相关的梳理总结
java·后端·网络协议·netty·信息与通信
s91236010135 分钟前
rust 同时处理多个异步任务
java·数据库·rust
9号达人35 分钟前
java9新特性详解与实践
java·后端·面试
cg501739 分钟前
Spring Boot 的配置文件
java·linux·spring boot
啊喜拔牙1 小时前
1. hadoop 集群的常用命令
java·大数据·开发语言·python·scala
anlogic1 小时前
Java基础 4.3
java·开发语言
非ban必选2 小时前
spring-ai-alibaba第七章阿里dashscope集成RedisChatMemory实现对话记忆
java·后端·spring
A旧城以西2 小时前
数据结构(JAVA)单向,双向链表
java·开发语言·数据结构·学习·链表·intellij-idea·idea