有呀,比如这款!现成的功能!勾选批量,烙制拍摄日期。
用ps的动作面板可以批量处理
1、打开一张图片
2、打开动作面板(窗口-动作)
3、单击【创建新动作】(在动作面板右下角)
4、在图片上增加水印,日期
5、保存,关闭文档
6、停止动作
7、开始批处理了,文档-自动-批处理-选中文档所在位置,动作选刚才保存的),确定就行了
记住在添加图片上的水印或日期时操作一定要精准,不要多次操作,可以先练习下熟练再开始从1步到6步
不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为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();
}