Photoshop按文件名生成文字图层
本帖最后由 zhengzhenhui945 于 2025-6-17 00:06 编辑起因是给学校当家委,整理学生家长的缴费截图,截图里面没有名字信息。
我就用PS‘按文件名生成文字图层’去合成图片。
当家委实属无奈,娃子个子高,不当家委就坐后排垃圾桶旁边了,
当家委现在关照我娃子坐靠墙前排座位。
题外话:学校也是卷,做表格,统计缴费,采购都家委来。{:1_925:}
代码如下↓↓↓↓↓↓↓↓↓↓
TXT另存为JS格式拖拽到ps使用
文字的位置偏移,可在代码里面自行调整
=========下载地址===========
Photoshop版jsx脚本版 下载:https://zhenghui.lanzouu.com/iJAeM2yx6mha
BAT版本调用ImageMagick命令工具:https://zhenghui.lanzouu.com/i5euq2yxziad【内有ImageMagick命令工具】
===========================
try {
var activeDoc = app.activeDocument;
var fullFilename = "";
var filename = "";
var dotIndex = "";
// 获取当前文档的完整文件名
fullFilename = activeDoc.name;
// 查找文件扩展名的位置
dotIndex = fullFilename.lastIndexOf('.');
// 提取文件名(不包含扩展名)
if (dotIndex!== -1) {
filename = fullFilename.substring(0, dotIndex);
} else {
filename = fullFilename;
}
// 创建一个新的文字图层
var artLayer = activeDoc.artLayers.add();
artLayer.kind = LayerKind.TEXT;
// 获取文字图层的文本项
var textItem = artLayer.textItem;
textItem.contents = filename;
// 设置文字的字体、大小和颜色
textItem.font = "SimHei";
textItem.size = 50;
// 定义十六进制颜色代码
var hexColor = "ff0000";
// 调用转换函数
var rgbColor = hexToRgb(hexColor);
textItem.color.rgb.red = rgbColor.r;
textItem.color.rgb.green = rgbColor.g;
textItem.color.rgb.blue = rgbColor.b;
// 移动文字图层,水平方向的偏移量
artLayer.translate(-6, 1088);
// 合并所有图层暂时不用 activeDoc.flatten();
} catch (e) {
// 可以选择保留或去掉错误提示,这里选择去掉
// alert("发生错误:" + e.message);
}
// 辅助函数:将十六进制颜色代码转换为 RGB 对象
function hexToRgb(hex) {
// 去除可能存在的 # 符号
hex = hex.replace(/^#/, '');
// 处理短格式十六进制代码(如 #f00)
if (hex.length === 3) {
hex = hex + hex + hex + hex + hex + hex;
}
// 解析 RGB 值
var bigint = parseInt(hex, 16);
var r = (bigint >> 16) & 255;
var g = (bigint >> 8) & 255;
var b = bigint & 255;
return { r: r, g: g, b: b };
}
方法二:下面这个是BAT代码,直接调用ImageMagick 命令工具,批量添加带有文件名的文字水印
需要电脑有ImageMagick 命令工具
=======================
@echo off
setlocal enabledelayedexpansion
rem 字体大小以及颜色可自由调整
rem 设置中文字符集
chcp 65001 > nul
rem 检查当前目录下是否存在 magick.exe
if not exist "%~dp0magick.exe" (
echo 错误: 当前目录下未找到 magick.exe 文件!
echo 请确保 ImageMagick 已安装并将 magick.exe 放在批处理文件同目录下。
goto :end
)
rem 检查是否有拖放的文件夹参数
if "%~1"=="" (
set "input_folder=%~dp0"
) else (
set "input_folder=%~1"
)
echo 开始为图片添加文字水印...
rem 获取当前批处理文件所在的绝对路径
set "current_dir=%~dp0"
rem 创建"水印处理完成"文件夹的绝对路径
set "output_folder=%current_dir%水印处理完成"
if not exist "%output_folder%" mkdir "%output_folder%"
set "processed=0"
set "failed=0"
rem 请在此处设置水印透明度 (0-100)
set "watermark_opacity=100"
rem 请在此处设置水印字体大小
set "watermark_size=36"
rem 设置水印颜色代码,默认为红色
set "watermark_color=#ff0000"
rem 处理指定文件夹中的所有 JPG、PNG 和 GIF 文件
for /r "%input_folder%" %%i in (*.jpg *.png *.gif) do (
echo 正在处理: %%i
rem 使用文件名作为水印文字(不含扩展名)
set "watermark_text=%%~ni"
rem 构建输出文件名
set "output_file=%%~ni_水印%%~xi"
rem 修复:正确设置颜色和透明度
rem 将 hex 颜色代码转换为 RGB 格式
set "r=0x!watermark_color:~1,2!"
set "g=0x!watermark_color:~3,2!"
set "b=0x!watermark_color:~5,2!"
rem 使用 RGB 和透明度创建正确的 rgba 格式
set /a r_dec=!r!
set /a g_dec=!g!
set /a b_dec=!b!
rem 构建完整的 rgba 颜色字符串
set "rgba_color=rgba(!r_dec!,!g_dec!,!b_dec!,!watermark_opacity!%%)"
rem 使用正确的 rgba 格式,指定支持中文的字体
"%~dp0magick.exe" "%%i" -gravity South -pointsize !watermark_size! -font "SimHei" -fill "!rgba_color!" -annotate +0+10 "!watermark_text!" "%output_folder%\!output_file!"
rem 检查是否成功生成水印图片
if exist "%output_folder%\!output_file!" (
echo 水印添加成功: !output_file!
set /a processed+=1
) else (
echo 水印添加失败: %%i
set /a failed+=1
)
)
echo.
echo 处理结果:
echo 成功添加水印: %processed% 张图片
echo 添加失败: %failed% 张图片
echo 处理完成的图片已移至 "%output_folder%" 文件夹
pause
:end
上述BAT代码中水印的位置调整,可在第66行代码中修改
调整 -gravity 参数:该参数可以设置水印的基本对齐方式,
例如 North(顶部居中)、South(底部居中)、East(右侧居中)、
West(左侧居中)、NorthEast(右上角)、NorthWest(左上角)、
SouthEast(右下角)、SouthWest(左下角)和 Center(居中)
如需微调文字水印X、Y偏移,插入此代码
rem 修改水印位置,这里将水印设置为左上角,并微调位置
set "gravity=NorthWest"
set "offset_x=10"
set "offset_y=10"
set "annotate=+%offset_x%+%offset_y%"
感谢分享 额,你还不如ocr图片,直接改图片文件名字呢 雷欧库珀 发表于 2025-6-16 17:16
额,你还不如ocr图片,直接改图片文件名字呢
是用图片文件名,然后加在图片里面。不是去改图片名 有批量加水印小工具的,可以根据文件名生成水印。 不会用PS的家长不是好家委:lol shaosw 发表于 2025-6-16 18:20
有批量加水印小工具的,可以根据文件名生成水印。
分享一下:lol 好厉害,这个我要研究一下 afti 发表于 2025-6-16 21:16
不会用PS的家长不是好家委
被迫上岗了,揽了这个家委差事VBA、PS、BAT跟着搞起来了,家里还备着打印机。。。。。 可怜的家长们
页:
[1]
2