有什么软件可以批量抓取照片的拍摄日期然后批量的在照片上指定位置增加水印时间! 着急啊

2025-03-10 18:46:49
推荐回答(3个)
回答1:

有呀,比如这款!现成的功能!勾选批量,烙制拍摄日期。

回答2:

用ps的动作面板可以批量处理
1、打开一张图片
2、打开动作面板(窗口-动作)
3、单击【创建新动作】(在动作面板右下角)
4、在图片上增加水印,日期
5、保存,关闭文档
6、停止动作
7、开始批处理了,文档-自动-批处理-选中文档所在位置,动作选刚才保存的),确定就行了
记住在添加图片上的水印或日期时操作一定要精准,不要多次操作,可以先练习下熟练再开始从1步到6步

回答3:

不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行

<# :
cls&echo off&cd /d "%~dp0"&mode con lines=5000
rem 在当前目录里多个jpg图片文件的左下角添加拍摄时间水印
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "current=%cd%"
powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
$current=$env:current;
$newfolder=$current.trimend('\')+'\result';
if(-not (test-path -literal $newfolder)){[void][IO.Directory]::CreateDirectory($newfolder);}
write-host 'getting shooting date……';
Add-Type -AssemblyName 'System.drawing';
$arr=New-Object -TypeName System.Collections.ArrayList;
$files=@(dir -literal $current|?{(@(".jpg",".jpeg") -contains $_.Extension) -and ($_ -is [System.IO.FileInfo])});
for($i=0;$i -lt $files.length;$i++){
    $t='';
    $img=[System.Drawing.Image]::FromFile($files[$i].FullName);
    foreach($it in $img.PropertyItems){
        if($it.Id -eq 0x9003){
            $t=[System.Text.Encoding]::ASCII.GetString($it.Value) -replace '\x00$','';
            break;
        }
    }
    if($t -ne ''){
        $t=[System.Text.Encoding]::ASCII.GetString($it.Value) -replace '\x00$','';
        $dt=[System.DateTime]::ParseExact($t, 'yyyy:MM:dd HH:mm:ss', [System.Globalization.CultureInfo]::InvariantCulture);
        $line=$files[$i].FullName+'|'+$dt.ToString('yyyy-MM-dd HH:mm:ss');
        [void]$arr.add($line);
    }
    $img.Dispose();
}
if($arr.Count -ge 1){
    $b=[Convert]::FromBase64String("IC0tPiA=");
    $c=[Text.Encoding]::Default.GetString($b);
    write-host 'adding watermark……';
    $brr=$arr.Split('|');
    $img=[System.Drawing.Image]::FromFile($brr[0]);
    $font=New-Object System.Drawing.Font('黑体', 20, [System.Drawing.FontStyle]::Bold);
    $color=New-Object System.Drawing.SolidBrush([System.Drawing.ColorTranslator]::FromHtml('#FFFF00'));
    $gs=[System.Drawing.Graphics]::FromImage($img);
    $point=New-Object System.Drawing.PointF;
    $point.X=50;
    $point.Y=$img.Height-50;
    $gs.DrawString($brr[1], $font, $color, $point);
    $newfile=$newfolder+'\'+($brr[0] -replace '^.+\\','');
    $brr[0].replace($current,'')+$c+'['+$brr[1]+']'+$newfile.replace($current,'');
    $img.Save($newfile)
    $gs.Dispose();
    $img.Dispose();
}