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