User Tools

Site Tools


mylog:mylog2024:202407:20240712

批量删除照片exif信息里的地理位置信息

现在照相绝大多数是用手机了,照片信息里,有个exif信息,里面记录的有拍照的各种信息:光圈、快门、地理经纬度、手机类型,往网上传照片的时候,就不希望这些信息传播,比如地理信息,所以就想找个可以批量删除的工具。 就找到这个,exiftool,是个免费软件。 只是用起来不方便,需要命令行操作,有windows下的GUI,但是试了两个,在我的电脑上都显示的奇奇怪怪的。由于我只是做些简单操作,就不去折腾了。

目前我的做法是把修改的图片拷贝到exiftool目录下,然后建个bat批处理文件来执行。

@echo off

exiftool -gps:all= -overwrite_original  *.heic *.jpg
echo Done, press any key to end...
pause > nul

其中-overwrite_original是删除原始文件,不然exiftool要生成一个原始图片的备份文件。

如果想删除所有exif信息,这样来:

@echo off

exifTool -all= --icc_profile:all   -overwrite_original  *.heic *.jpg
echo Done, press any key to end...
pause > nul

这里加入icc保留的参数,不然颜色信息删除了会导致显示问题。

我还想试着保留照片拍摄时间信息,但是这个软件确实复杂,暂时没搞明白,回头再试吧。

另外想在bat里显示中文信息,结果老是乱码,查了一下,要加入chcp 65001才行,但是发现,要每个echo指令前都加入才行。。算了,还英文吧。保存文件的时候选择UTF-8+BOM格式。

做了个二合一的bat,不过老是显示路径,不知道怎么消除。

@echo off
chcp 65001

:start
cls
echo 请选择需要执行的操作:

echo 1. 删除图片的EXIF,但是保留ICC信息
echo 2. 只删除图片的GPS信息
echo 3. 退出
echo.
set /p choice=输入选择(1/2/3)并按回车:

if "%choice%"=="1" goto option1
if "%choice%"=="2" goto option2
if "%choice%"=="3" goto exit
echo 无效的选择,请重试.
goto start

:option1
REM 删除图片EXIF和ICC信息的代码
exifTool -all= --icc_profile:all   -overwrite_original  *.heic *.jpg
echo EXIFICC信息已全部删除.
pause
goto start

:option2
REM 只删除图片的GPS信息
exiftool -gps:all= -overwrite_original  *.heic *.jpg
pause
goto start

:exit
echo 已退出程序.
exit

mylog/mylog2024/202407/20240712.txt · Last modified: 2024/07/12 13:33 by Mike

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki