iphone拷贝照片中间带E自动去重软件,以及java程序如何打包成jar和exe
文章目录
- 一、前提
- 二、问题描述
- 三、原始处理方式
- 四、程序处理
- 4.1 java程序如何打包exe
- 4.1.1 首先打包jar
- 4.1.2 开始生成exe
- 4.1.3 软件使用方式
- 4.2 更换图标
- 4.2.1 更换swing的打包jar图标
- 4.2.2 更换exe图标
- 4.3 如何使生成的exe在没有java环境的电脑上运行
- 4.3.1 Inno Setup打包
- 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,那么实际的情况是:
- A为原片,B是在A的基础上剪裁的
- 真正通过USB方式拷贝的,会同时存在A与B
- A与B文件名几乎相同,唯一的区别是B的名称中间加了个E,例如:A–>IMG_3854.HEIC,B–>IMG_E3854.HEIC
- 只有HEIC的苹果相机照片会有这个问题,png等不存在
- 我们需要B存在时留下B,否则留下A

三、原始处理方式
最消耗时间的方式肯定是用肉眼去对比,一张一张的删,只有对比过才知道有多么麻烦
四、程序处理
于是想到用程序来解决,具体代码就不讲了,流程无非就是:
- 将所有iphone拷贝出来的照片文件夹放到一个文件夹路径下
- 提供这个文件夹的路径,可以是文件夹套着文件夹
- 根据这个路径,去遍历该文件夹以及该文件的所有子文件夹下每一个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 软件使用方式
- 输入需要清理的照片路径,该路径随便填,支持递归。例如:E:\新建文件夹,则可以清理该文件夹下的内容以及其所有子文件夹内容
- 单击 [开始清理] 按钮,程序会自动获取E:\新建文件夹下所有文件夹内的照片,逐个清理重复的照片
- [清空输出文本] 按钮,可清除所有绿色文字

4.2 更换图标
默认的图标如果嫌丑的话,可以更换ico图标,首先去网上下载或者自己制作一个ico图标
4.2.1 更换swing的打包jar图标
这个图标,可以使用png、jpg。ico不行
// 设置左上角图标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
相关文章:
iphone拷贝照片中间带E自动去重软件,以及java程序如何打包成jar和exe
文章目录 一、前提二、问题描述三、原始处理方式四、程序处理4.1 java程序如何打包exe4.1.1 首先打包jar4.1.2 开始生成exe4.1.3 软件使用方式 4.2 更换图标4.2.1 更换swing的打包jar图标4.2.2 更换exe图标 4.3 如何使生成的exe在没有java环境的电脑上运行4.3.1 Inno Setup打包…...
不同分类器对数据的处理
"""基于鸢尾花的不同分类器的效果比对:step1:准备数据;提取数据的特征向量X,Y将Y数据采用LabelEncoder转化为数值型数据;step2:将提取的特征向量X,Y进行拆分(训练集与测试集)step3:构建不同分类器并设置参数,例如:…...
十面骰子、
十面骰子(一): v 有一个十面的骰子,每一面分别为1-10,不断投掷骰子,投10000次,统计每一面1-10出现的次数或概率. v 提示:可用rand()产生1-10之间的随机数,再统计1-10出现的机会,存放于数组里,…...
IDE的下载和使用
IDE 文章目录 IDEJETBRAIN JETBRAIN 官网下载对应的ide 激活方式 dxm的电脑已经把这个脚本下载下来了,脚本是macjihuo 以后就不用买了...
华为OD机试真题【字母组合】
1、题目描述 【字母组合】 数字0、1、2、3、4、5、6、7、8、9分别关联 a~z 26个英文字母。 0 关联 “a”,”b”,”c” 1 关联 “d”,”e”,”f” 2 关联 “g”,”h”,”i” 3 关联 “j”,”k”,”l” 4 关联 “m”,”n”,”o” 5 关联 “p”,”q”,”r” 6 关联 “s”,”t” 7…...
Midjourney Prompt 提示词速查表 v5.2
Midjourney 最新的版本更新正不断推出令人兴奋的新功能。这虽然不断扩展了我们的AI绘图工具箱,但有时也会让我们难以掌握所有实际可以使用的功能和参数。 针对此问题, 小编整理了 "Midjourney Prompt 提示词速查表",这是一个非常方便的 Midjo…...
自动驾驶——驶向未来的革命性技术
自动驾驶——驶向未来的革命性技术 自动驾驶的组件自动驾驶的优势自动驾驶的应用自动驾驶的未来中国的自动驾驶 自动驾驶是一种技术,它允许车辆在没有人类驾驶员的情况下自主地进行行驶。它利用各种传感器、计算机视觉、人工智能和机器学习算法来感知和理解周围环境…...
PAT (Advanced Level) 甲级 1004 Counting Leaves
点此查看所有题目集 A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child. Input Specification: Each input file contains one test case. Each case starts with a line containing 0<N<100, …...
最长递增子序列——力扣300
int lengthOfLIS(vector<int>& nums) {int len=1, n=nums.size();if...
邮递员送信 单源最短路+反向建边
有一个邮递员要送东西,邮局在节点 1 1 1。他总共要送 n − 1 n−1 n−1样东西,其目的地分别是节点 2 2 2到节点 n n n。所有的道路都是单行的,共有 m m m条道路。邮递员每次只能带一样东西,运送每件物品过后必须返回邮局。求送完东…...
git的常用操作
1. git查看dev分支与master分支的情况 要查看特定分支(如dev和master)的情况,您可以使用以下命令: git log --oneline master..dev 这将显示在dev分支上存在但不在master分支上的提交记录的简要信息。每条记录都包括提交的哈希…...
vscode搭建java开发环境
一、配置extensions环境变量VSCODE_EXTENSIONS, 该环境变量路径下的存放安装组件: 二、setting配置文件 {"java.jdt.ls.java.home": "e:\\software\\jdk\\jdk17",// java运行环境"java.configuration.runtimes": [{"…...
01 qt快速入门
一 qt介绍 1.基本概念 1991年由Qt Company(奇趣)开发的跨平台C++图形用户界面应用程序开发框架,GUI程序和非GUI程序。优点:一套源码在不同的平台通过不同的编译器进行编译,就可以运行到该平台上目标机。面向对象的封装机制来对其接口封装。 GUI —图形用户界面(Graphic…...
嵌入式开发中常用且杂散的命令
1、mount命令 # 挂载linux系统 mkdir /tmp/share mount -t nfs 10.77.66.88:/share/ /tmp/share -o nolock,tcp cd /tmp/share# 挂载Windows系统 mkdir /tmp/windows mount -t nfs 10.66.77.88:/c/public /tmp/windows -o nolock,tcp cd /tmp/windows# 挂载vfat格式的U盘 mkdi…...
JS导出复杂多级表头的Excel
使用方式 1、安装依赖 npm install xlsx-js-style2、复制代码文件exportExcel.js至工程 https://github.com/EnthuDai/export-excel-in-one-line 3、在引入excel.js后调用 Excel.export(columns, dataSource, 导出文件名)4、代码demo 5、效果 页面excel 适用范围 对于使…...
2023国赛数学建模E题思路分析
文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 全国大学生数学建模…...
【JavaScript 12】二进制位运算符 或 与 非 异或 左移 右移 头部补零右移
二进制位运算符 概述 概述 7个用于直接对二进制位进行运算 二进制或 or | 若两个二进制位都为0则为0,否则为1二进制与 and & 若两个二进制位都为1则为1,否则为0二进制非 not ~ 对一个二进制位取反异或 xor ^ 若两个二进制位不同则为1,否…...
Kafka 入门到起飞 - Kafka是怎么保证可靠性的呢
在这里插入图片描述 我们已经了解到,复习一下 创建topic时,可以指定副本因子 repilication-factor 3 表示分区的副本数,包括Leader分区副本和follower分区副本不要超过broker的数量,尽量保证一个分区的副本均匀分散不同的broker…...
数学建模(三)整数规划
视频推荐:B站_数学建模老哥 一、整数规划基本原理 数学规划中的变量(部分或全部)限制为整数时,称为整数规划。若在线性规划模型中,变量限制为整数,则称为整数线性规划。目前所流行的求解整数规划的方法&am…...
全面梳理Python下的NLP 库
一、说明 Python 对自然语言处理库有丰富的支持。从文本处理、标记化文本并确定其引理开始,到句法分析、解析文本并分配句法角色,再到语义处理,例如识别命名实体、情感分析和文档分类,一切都由至少一个库提供。那么,你…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
