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

相关推荐
lhldsg1 小时前
全民健身解决方案小程序开发:从0到1的技术实战
java·数据库·需求分析
jason成都1 小时前
Spring WebFlux 适配达梦新方案|dm‑r2dbc:Netty 异步传输的实验性 R2DBC 驱动
java·后端·spring
泡海椒1 小时前
内置SPI函数库详解:JQuick-Java Builtin工具类实战用法
java·开发语言·python
辰烨chenye1 小时前
LeetCode Hot 100 题解 · 二分篇
java·算法·leetcode
小羊没烦恼!2 小时前
Hello Web API系列教程——Web API与国际化
java·服务器·前端·javascript·php
小荷才露尖尖角,早有蜻蜓立上头3 小时前
过滤器的4种创建方式
java
大圣编蚕3 小时前
Java ByteArrayInputStream 详解:从入门到实战
java·开发语言·算法
程序员阿明3 小时前
idea把插件啥的不默认放在C盘
java·ide·intellij-idea
linweidong4 小时前
中科闻歌Java面试题及参考答案
java·python·大模型·提示词·ai agent·mcp·rag原理
OpenAnolis小助手4 小时前
一句话看透 JVM,SysOM 诊断 Skill 新增 Java 应用诊断能力
java·开发语言·jvm·阿里云·操作系统控制台·sysom