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,那么实际的情况是:

  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不行

		// 设置左上角图标
        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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/75280.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp的uview-plus组件库的导入

uniapp的vue3中使用uview-plus组件库。在插件市场中找到该组件并点击如下所示绿色按钮,弹出弹窗选择要导入的项目后,就会在uni_modules文件中生成如下文件内容 关于插件的下载区别,可参考:https://uniapp.dcloud.net.cn/compone…

VSCode如何设置高亮

一、概述 本文主要介绍在 VSCode 看代码时,怎样使某个单词高亮显示,主要通过以下三步实现: 安装 highlight-words 插件 配置 highlight-words 插件 设置高亮快捷键F8 工作是嵌入式开发的,代码主要是C/C的,之前一直用…

uniapp 扩展组件 uni-forms 的表单验证之 validateFunction 只响应一次

uniapp 扩展组件 uni-forms 的表单验证之 validateFunction 只响应一次 问题代码官方说明参考资料 问题代码 直接从官方示例中复制过来改的。为了演示 <template><view><uni-forms ref"form" :modelValue"formData" :rules"rules&qu…

day 0815

计算文件有多少行&#xff1f; 2.文件的拷贝

Java中有哪些可以用于日期和时间的API?

从Java 8开始&#xff0c;java.time包提供了新的日期和时间API&#xff0c;新增的API严格区分了时刻、本地日期、本地时间&#xff0c;并且&#xff0c;对日期和时间进行运算更加方便。主要涉及的类型有以下几类&#xff1a; LocalDate&#xff1a;不包含具体时间的日期。 Lo…

ArcGIS入门操作手册

一.ArcGIS安装过程 参考本人博客&#xff1a;保姆级Arcgis安装图文安装教程_追忆苔上雪的博客-CSDN博客 二.ArcGIS植被指数计算 (1)使用工具&#xff1a;栅格计算器 打开软件&#xff0c;右侧搜索栅格计算器打开&#xff0c;要是搜索栏不小心叉掉找不到了&#xff0c;可以通…

初识结构体

文章目录 目录1. 结构体类型的声明1.1 结构的基础知识1.2 结构的声明1.3 结构成员的类型1.4 结构体变量的定义和初始化 2. 结构体成员的访问3. 结构体传参 目录 结构体类型的声明结构体初始化结构体成员访问结构体传参 1. 结构体类型的声明 1.1 结构的基础知识 结构是一些值的…

可白嫖的4家免费CDN,并测试其网络加速情况(2023版)

网站加载速度优化过程中&#xff0c;不可避免的会用上CDN来加速资源的请求速度。但是市面上的CDN资源几乎都是要收费的&#xff0c;而且价格还不便宜&#xff0c;对于小公司站长来讲&#xff0c;这将是一笔不小的开销。不过还是有一些良心公司给我们提供了免费的资源&#xff0…

私密相册管家-加密码保护私人相册照片安全

App Store史上最安全、最强大、最卓越的私密相册App&#xff01;再也不用担心私密照片视频被别人看见了&#xff01;
私密相册为你提供多重密码保护机制、简单便捷的照片存储空间&#xff0c;完美地将你的私密照片远离一切恶意偷窥者的窥探&#xff01; 【产品功能】
 √ 支…

【Pytorch:nn.Embedding】简介以及使用方法:用于生成固定数量的具有指定维度的嵌入向量embedding vector

文章目录 1、nn.Embedding2、使用场景 1、nn.Embedding 首先我们讲解一下关于嵌入向量embedding vector的概念 1&#xff09;在自然语言处理NLP领域&#xff0c;是将单词、短语或其他文本单位映射到一个固定长度的实数向量空间中。嵌入向量具有较低的维度&#xff0c;通常在几…

两天入门Linux、搭建Spring环境 第一天

一、Linux简介 1.什么是Linux 一个操作系统&#xff0c;未来公司里面会用到、接触的新操作系统。 2.为什么学Linux (1)个人职务需要&#xff0c;肯定会接触到Linux (2)职业发展&#xff0c;以后的发展肯定需要掌握Linux的许多使用方法 3.学哪些内容 (1)Linux基本介绍 (2)…

Prometheus入门

Prometheus(普罗米修斯) 是一种 新型监控告警工具,Kubernetes 的流行带动了 Prometheus 的应用。 全文参考自 prometheus 学习笔记(1)-mac 单机版环境搭建[1] Mac 上安装 Prometheus brew install prometheus 安装路径在 /usr/local/Cellar/prometheus/2.20.1, 配置文件在 /usr…

Qt 之 QPushButton,信号与槽机制

文章目录 前言一、QPushButton二、信号与槽机制总结 前言 一、QPushButton 当我们开发基于Qt框架的图形用户界面&#xff08;GUI&#xff09;应用程序时&#xff0c;经常需要在界面上添加按钮来实现用户交互。Qt提供了一个名为 QPushButton 的类作为按钮控件的实现。QPushButt…

题解 | #1002.Shortest path# 2023杭电暑期多校9

1002.Shortest path 签到题 记忆化搜索 题目大意 给定一个正整数 n n n &#xff0c;可以对其进行以下操作&#xff1a; 如果 n n n 能被 3 3 3 整除&#xff0c;则可以使 n n / 3 nn/3 nn/3 ;如果 n n n 能被 2 2 2 整除&#xff0c;则可以使 n n / 2 nn/2 nn/2 …

探索Java中的静态变量与实例变量:存储区域、生命周期以及内存分配方式的区别

文章目录 静态变量实例变量不可变对象静态变量和实例变量有什么区别&#xff1f;静态变量实例变量 Object 类都有哪些公共方法&#xff1f;Java 创建对象有哪几种方式&#xff1f;ab 与 a.equals(b) 有什么区别&#xff1f;总结 &#x1f389;欢迎来到Java面试技巧专栏~探索Jav…

贝锐蒲公英:快速搭建连锁门店监控体系,赋能企业高效管理

随着国民生活水平的提高和零售场景的变革&#xff0c;消费者对于餐饮类目的消费支出不断增加&#xff0c;线下社区生鲜商超作为下沉市场最主要的消费场景之一&#xff0c;蕴藏着巨大价值机会。 对于线下连锁生鲜超市而言&#xff0c;连锁门店多、员工多&#xff0c;门店管理时会…

如何使用CSS实现一个响应式网格布局?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用CSS实现响应式网格布局⭐ 设置基本的HTML结构⭐ 创建基本的CSS样式⭐ 添加媒体查询以实现响应式效果⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端…

【Vue-Router】路由传参

1. query 传参 list.json {"data": [{"name": "面","price":300,"id": 1},{"name": "水","price":400,"id": 2},{"name": "菜","price":500,"…

C#质检工具(StyleCop、SonarLint)

1、StyleCop StyleCop工具主要类似java中的checkStyle,是检查代码样式规范的工具。 1.1、StyleCop安装流程: 图1.1 图1.2 图1.3 安装StyleCop插件时可能会遇到下载特慢或卡住不动的情况,需注意: 1)网上说的关闭IPV6功能不管用 2)网上说的自动指定dns不管用 3)网上…

Qt应用开发(基础篇)——滚屏区域基类 QAbstractScrollArea

一、前言 QAbstractScrollArea滚屏区域抽象类继承于QFrame&#xff0c;QFrame继承于QWidget&#xff0c;是QListview(列表浏览器)、QTableview(表格浏览器)、QTextEdit(文本编辑器)、QTextBrowser(文本浏览器)等所有需要滚屏区域部件的抽象基类。 框架类QFrame介绍 QAbstractSc…