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. [清空输出文本] 按钮,可清除所有绿色文字

4.2 更换图标

默认的图标如果嫌丑的话,可以更换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

相关推荐
_阿伟_16 分钟前
SpringMVC
java·spring
代码在改了23 分钟前
springboot厨房达人美食分享平台(源码+文档+调试+答疑)
java·spring boot
wclass-zhengge1 小时前
数据结构篇(绪论)
java·数据结构·算法
何事驚慌1 小时前
2024/10/5 数据结构打卡
java·数据结构·算法
结衣结衣.1 小时前
C++ 类和对象的初步介绍
java·开发语言·数据结构·c++·笔记·学习·算法
TJKFYY1 小时前
Java.数据结构.HashSet
java·开发语言·数据结构
kylinxjd1 小时前
spring boot发送邮件
java·spring boot·后端·发送email邮件
OLDERHARD1 小时前
Java - MyBatis(上)
java·oracle·mybatis
杨荧1 小时前
【JAVA开源】基于Vue和SpringBoot的旅游管理系统
java·vue.js·spring boot·spring cloud·开源·旅游
zaim13 小时前
计算机的错误计算(一百一十四)
java·c++·python·rust·go·c·多项式