为照片批量写入手动镜头的信息(脚本放送)
835
5
|
[1 楼] 余斗斜
[泡菜]
10-13 23:22
在AI的帮助下
写了一个批处理文件 可以把手动镜头的厂家、镜头型号、焦距及最大光圈信息写入图片的exif中 拍摄的光圈可能每张不同,不适宜批处理,不在本脚本功能内 把自己的手动镜头弄成菜单,可以一键选择 支持的文件类型为:JPG、JPEG、TIF、TIFF、PNG、ARW、CR2、NEF、RW2、DNG 安装、使用方法: 1、首先下载免费的工具 ExifTool,找windows可执行版下载。 我选了32位版。64位也可以的。 2、解压后把exiftool(-k).exe 改名为exiftool.exe 3、然后将改名后的exiftool 及exiftool_files 文件夹一起复制到c:\Windows 里面 4、把二楼的代码复制下来,粘贴到记事本。因论坛代码原因,请在绿色表情位置,替换回"冒号p" 5、根据自己的镜头群,修改相关信息。想加入其它信息的,请按需自己研究。 6、另存为lens_info.bat文件,注意选择为Ansi编码,不要使用UFT-8 7、把一个或多个文件拖到该bat文件的图标上,即可弹出窗口执行 余斗斜 编辑于 2025-10-13 23:38 |
|
[6 楼] jianping520
[泡菜]
10-14 10:17
这个厉害了。收藏。
|
|
[5 楼] youngchun
[老坛泡菜]
10-14 09:07
批处理方便
![]() 我是每次用C1处理图片时,把镜头信息写入作者一栏中,这样可以在WINDOWS浏览器中显示此栏,并可以排序。 |
|
[4 楼] 余斗斜
[泡菜]
10-14 06:02
前面的帖子已经不允许再编缉,就只好在这里补充了。
将代码中下面这行: exiftool -overwrite_original ^ 替换为: exiftool -overwrite_original -P ^ 可以保留文件原有的创建\修改时间 |
|
[3 楼] 余斗斜
[泡菜]
10-13 23:24
@echo off
chcp 936 >nul title 批量设置镜头信息工具 echo ============================================= echo 批量设置镜头信息工具 (v2.1) echo ============================================= echo 请选择要写入的镜头信息: echo. echo [1] Rokinon 8mm T/3.8 Aspherical IF MC Fisheye echo [2] Rokinon 35mm T/1.5 AS UMC echo [3] Voigtlander Ultron 40mm f/2 SL II N echo [4] Samyang 50mm T/1.5 AS UMC echo [5] Pentax SMC TAKUMAR 50mm f/1.4 MF echo [6] Pentacon Auto MC 50mm f/1.8 echo [7] DuLens APO 85mm f/2 echo [8] Rokinon 135mm f/2.0 ED UMC echo. set /p choice=请输入选项编号 (1-8): REM ============================= REM 根据用户选择设置镜头参数 REM ============================= if "%choice%"=="1" ( set "LensMake=Rokinon" set "LensModel=8mm T/3.8 Aspherical IF MC Fisheye" set "FocalLength=8mm" set "MaxApertureValue=3.5" ) else if "%choice%"=="2" ( set "LensMake=Rokinon" set "LensModel=35mm T/1.5 AS UMC" set "FocalLength=35mm" set "MaxApertureValue=1.4" ) else if "%choice%"=="3" ( set "LensMake=Voigtlander" set "LensModel=Ultron 40mm f/2 SL II N" set "FocalLength=40mm" set "MaxApertureValue=2.0" ) else if "%choice%"=="4" ( set "LensMake=Samyang" set "LensModel=50mm T/1.4 AS UMC" set "FocalLength=50mm" set "MaxApertureValue=1.5" ) else if "%choice%"=="5" ( set "LensMake=Pentax" set "LensModel=SMC TAKUMAR 50mm f/1.4 MF" set "FocalLength=50mm" set "MaxApertureValue=1.4" ) else if "%choice%"=="6" ( set "LensMake=Pentacon" set "LensModel=Auto MC 50mm F1.8" set "FocalLength=50mm" set "MaxApertureValue=1.8" ) else if "%choice%"=="7" ( set "LensMake=DuLens" set "LensModel=APO 85mm f/2" set "FocalLength=85mm" set "MaxApertureValue=2.0" ) else if "%choice%"=="8" ( set "LensMake=Rokinon" set "LensModel=135mm f/2.0 ED UMC" set "FocalLength=135mm" set "MaxApertureValue=2.0" ) else ( echo 无效选项,请重新运行脚本。 pause exit /b ) echo. echo 你选择了:%LensMake% %LensModel% echo 焦距:%FocalLength% 最大光圈:%MaxApertureValue% echo ============================================= echo. REM 检查 exiftool 是否存在 where exiftool >nul 2>&1 if errorlevel 1 ( echo 未找到 exiftool,请确认它已正确安装并添加到系统路径中。 pause exit /b ) set "ext_list=JPG JPEG TIF TIFF PNG ARW CR2 NEF RW2 DNG" set /a modified_count=0 set /a skipped_count=0 REM ============================= REM 处理命令行传入的文件 REM ============================= for %%F in (%*) do ( call rocess_file "%%~F") echo. echo ===== 处理统计 ===== echo 成功修改的文件数量:%modified_count% echo 跳过的文件数量 :%skipped_count% echo ==================== pause exit /b rocess_filesetlocal set "filepath=%~1" set "filename=%~nx1" set "ext=%~x1" set "ext=%ext:~1%" set "found=no" for %%E in (%ext_list%) do ( if /I "%%E"=="%ext%" set "found=yes" ) if "%found%"=="yes" ( echo 正在处理:%filename% exiftool -overwrite_original ^ -LensMake="%LensMake%" ^ -LensModel="%LensModel%" ^ -FocalLength="%FocalLength%" ^ -MaxApertureValue=%MaxApertureValue% "%filepath%" >nul endlocal & set /a modified_count+=1 ) else ( echo 跳过不支持的文件类型:%filename% endlocal & set /a skipped_count+=1 ) goto :eof |

rocess_file "%%~F"