Win10怎么批量压缩图片并保留EXIF Win10工具或脚本压缩同时保留拍摄信息
技术百科
絕刀狂花
发布时间:2025-12-22
浏览: 次 如果您需要在Windows 10中批量压缩图片,同时保留原始照片中的EXIF信息(如拍摄时间、相机型号、GPS位置等),但发现常规压缩工具会清除这些元数据,以下是几种能有效实现“压缩体积+保留EXIF”的可靠方法:
一、使用PowerShell脚本调用WIC组件压缩并保留EXIF
Windows Imaging Component(WIC)是系统内置的图像处理框架,支持在编码时保留元数据。通过PowerShell可批量调用。
1、将所有待压缩的图片放入一个文件夹(例如 D:\Photos)。
2、右键点击“开始”菜单,选择“Windows PowerShell(管理员)”。
3、执行以下命令安装必要模块(如未启用):
Add-Type -AssemblyName System.Windows.Forms。
4、复制并运行以下脚本(保存为.ps1文件后执行更安全):
Get-ChildItem "D:\Photos\*.jpg" | ForEach-Object {
$img = [System.Drawing.Image]::FromFile($_.FullName)
$encoder = [System.Drawing.Imaging.Im
ageCodecInfo]::GetImageEncoders() | Where-Object {$_.FormatDescription -eq "JPEG"}
$params = New-Object System.Drawing.Imaging.EncoderParameters(1)
$params.Param[0] = New-Object System.Drawing.Imaging.EncoderParameter([System.Drawing.Imaging.Encoder]::Quality, 80)
$newPath = $_.DirectoryName + "\compressed_" + $_.Name
$img.Save($newPath, $encoder, $params)
$img.Dispose()
}
5、该脚本以80%质量压缩JPEG,默认保留EXIF,因System.Drawing在Save时不主动剥离元数据。
6、压缩后的文件将保存在同一目录,前缀为“compressed_”。
二、使用IrfanView配合批处理保留EXIF压缩
IrfanView是一款轻量级图像查看器,其批量转换功能支持EXIF保留选项。
1、从官网 https://www.irfanview.com 下载并安装IrfanView及插件包(Plugins)。
2、打开IrfanView,按 B 键或点击菜单栏“文件” → “批量转换/重命名”。
3、点击“添加全部”,选择目标图片文件夹。
4、在“输出格式”中选择JPG – JPG/JPEG Format。
5、勾选“保留EXIF数据(如果可能)”复选框(位于底部选项区)。
6、点击“设置”按钮,在JPEG质量滑块中调整至70–85之间以平衡体积与画质。
7、设置输出目录,点击“开始批处理”,程序将生成压缩后且含完整EXIF的新文件。
三、使用ExifTool结合ImageMagick实现精准控制
此方案适合高级用户,先压缩再注入原始EXIF,确保元数据100%保留。
1、下载并安装 ImageMagick(https://imagemagick.org)和 ExifTool(https://exiftool.org)。
2、将图片放入 D:\Originals,创建空文件夹 D:\Compressed。
3、以管理员身份打开命令提示符,执行以下步骤:
① 批量压缩:
magick mogrify -path D:\Compressed -quality 80 -format jpg D:\Originals\*.jpg
② 提取原始EXIF:
exiftool -tagsFromFile D:\Originals\%%f.jpg -all:all D:\Compressed\%%f.jpg
4、第二条命令将把原图的所有元数据(包括GPS、镜头信息等)复制到压缩后的新图中。
5、此方法可确保EXIF完整性,即使压缩工具本身会清除元数据也能恢复。
6、处理完成后,D:\Compressed 中的图片即为小体积且含全量EXIF的版本。
四、使用Photoshop动作(Action)批量处理(适用于已安装用户)
若已拥有Adobe Photoshop,可通过录制动作实现自动化。
1、打开Photoshop,导入一张示例图片。
2、点击窗口菜单中的“动作”面板,点击“创建新动作”,命名为“压缩保留EXIF”。
3、执行“文件”→“导出”→“存储为Web所用格式(旧版)”,设置JPEG质量为80,务必勾选“元数据:全部”。
4、点击“存储”,选择临时输出路径,然后停止动作录制。
5、再次打开“动作”面板,选择刚录制的动作,点击下方“播放”图标旁的小三角 → “批处理”。
6、设置源文件夹与目标文件夹,运行后将批量生成保留EXIF的压缩图。Photoshop默认在“存储为Web”中保留EXIF,除非手动关闭。
# 自动化
# adobe
# 也能
# windows
# 可通过
# 适用于
# 几种
# 勾选
# 工具
# win10
# win
# https
# format
# photoshop
# 编码
# 下载并安装
# foreach
# 压缩工具
# Object
# 批量转换
# shell脚本
# 后将
# 批处理
# win10工具
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- Windows驱动无法加载错误解决方法_驱动签名验
- Win11怎么设置ip地址_Windows 11手
- php485函数执行慢怎么优化_php485性能提
- Win11怎么设置开机问候语_自定义Win11锁屏
- mac怎么安装adb_MAC配置Android A
- Windows 11怎么更改锁屏超时时间_Wind
- Win11怎么关闭触控板_Win11笔记本禁用触摸
- Win11怎么设置组合键快捷方式_Windows1
- Python与OpenAI接口集成实战_生成式AI
- c++怎么调用nana库开发GUI_c++ 现代风
- Win11怎么更改鼠标指针_Windows 11自
- Win11怎么调整屏幕亮度_Windows 11调
- mac怎么看硬盘大小_MAC查看磁盘存储空间与文件
- C++如何将C风格字符串(char*)转换为std
- Windows10如何删除恢复分区_Win10 D
- 如何使用Golang捕获并记录协程panic_保证
- Win11搜索栏无法输入_解决Win11开始菜单搜
- PHP 中 require() 语句返回值的用法详
- Win11怎么更改默认打开方式_Win11关联文件
- php查询数据怎么分组_groupby分组查询配合
- php485返回空数组怎么回事_php485数据接
- 获取 PHP 文件最后修改时间的正确方法
- windows系统找不到无线网络怎么办_windo
- 如何在Golang中编写端到端测试_Golang
- LINUX怎么查看进程_LINUX ps命令查看运
- 如何使用Golang log记录不同级别日志_Go
- Linux如何安装Tomcat应用服务器_Linu
- Win11摄像头无法使用怎么办_Win11相机隐私
- Mac的“调度中心”与“空间”怎么用_Mac多桌面
- Linux如何挂载新硬盘_Linux磁盘分区格式化
- c++协程和线程的区别 c++异步编程模型对比【核
- Win11相机打不开提示错误怎么修_相机权限开启与
- Mac如何使用听写功能_Mac语音输入打字【效率技
- Windows10电脑怎么设置虚拟内存_Win10
- 如何在Golang中实现微服务负载均衡_Golan
- PHP主流架构怎么部署到Docker_容器化流程【
- Python类装饰器使用_元编程解析【教程】
- Win11怎么压缩文件 Win11自带压缩解压功能
- Python如何创建带属性的XML节点
- 如何在Golang中处理模块包路径变化_Golan
- Win11怎么查看显卡显存_查询Win11显卡详细
- Mac如何查看电池健康百分比_Mac系统信息电源检
- Windows10无法识别USB设备描述符请求失败
- c# 服务器GC和工作站GC的区别和设置
- c++中如何进行二进制文件读写_c++ read与
- PHP主流架构如何做单元测试_工具与流程【详解】
- Win11怎么连接蓝牙耳机_Win11蓝牙设备配对
- 如何使用Golang实现基本类型比较_Golang
- Win11如何关闭游戏模式 Win11禁用Xbox
- windows如何备份注册表_windows导出和

QQ客服