PS使用批量脚本生成海报实践

前言

设计朋友有需求做一批邀请函,有几十个人名,需要把人名加到海报中,PS里一个一个添加人名很麻烦,于是来问我有没有什么办法能够批量去添加。

希望把人名加到红框区域内

尝试用ps的脚本进行处理

准备

  • PS(版本2021,理论上新版本也支持,再之前的版本没测试过)
  • 人名名单
  • 字体(可选)
  • 海报底图

开始

先写了一个.jsx脚本。

什么是.jsx脚本?

.jsx 脚本是Adobe Photoshop的扩展脚本文件格式,它允许用户通过编写JavaScript代码来自动化Photoshop的任务和功能。这些脚本可以执行各种操作,比如打开和编辑图像、应用滤镜、创建新的图层或文本对象、导出文件等。

脚本内容

PS脚本.jsx

// 打开一个文档
var doc = app.activeDocument;

// 人名列表
var names = [ 
  "王旭",
  "李松达", 
  
]; // 用实际的名字替换这些

var c1 = new SolidColor();
 //255, 255, 126
with (c1.rgb) { red   = 26; green = 26; blue = 26; } 

// 获取桌面路径
var desktopPath = Folder.desktop.absoluteURI;

// 设置导出路径为桌面的 "ExportedImages" 文件夹
var exportPath = desktopPath + "/Images";


// 检查文件夹是否存在,如果不存在则创建
var exportFolder = new Folder(exportPath);
if (!exportFolder.exists) {
    exportFolder.create();
}

// 设置导出参数
var exportOptions = new ExportOptionsSaveForWeb();
exportOptions.format = SaveDocumentType.PNG;
exportOptions.PNG8 = false; 
exportOptions.transparency = true;

// 循环创建文本图层
for (var i = 0; i < names.length; i++) {
    // 创建文本图层
    var textLayer = doc.artLayers.add();
    textLayer.kind = LayerKind.TEXT;

    // 设置文本内容
    textLayer.textItem.contents = names[i];

	// 获取文本项(textItem)对象
	var textItem = textLayer.textItem;
	//var mytext=app.fonts.getByName("SimSun");
	// 设置字体
	textItem.font ="gongfanshouxiezhuanjiti"; // 你可以替换为你想要使用的字体名称
	
	// 设置字体大小
	textItem.size = 54; 
	textItem.justification = Justification.CENTER;
	
	//textItem.width = 236.21;
	//textItem.height=127.49;
	// 设置文本颜色(黄色)
	// var textColor = newRGBColor(); textColor.red = 255; textColor.green = 255; textColor.blue = 0;
	 textItem.color =c1; // 设置颜色
	 textItem.position = [2080, 2200]; // 设置位置
	 
    // 导出为 PNG 图片
    doc.exportDocument(new File(exportPath + "/output_" + names[i] + ".png"), ExportType.SAVEFORWEB, exportOptions);

    // 隐藏当前文本图层
    textLayer.visible = false;

   
}

人名整理

人名需要以json的格式来填写

// 人名列表
var names = [ 
  "王旭",
  "李松达", 
  
];

简单写了个Bat可以将人名转成json格式

@echo off
setlocal enabledelayedexpansion

set input_file=data.txt
set output_file=output.json

echo [ > %output_file%

for /f "tokens=* delims=" %%a in (%input_file%) do (
    set value=%%a
    echo "!value!", >> %output_file%
)

echo ] >> %output_file%

echo Conversion complete. Output saved to %output_file%

然后将处理好的人名复制到脚本中即可。

测试效果

打开PS,将准备好的海报底图导入进去。

先创建一个文本试下位置和效果。选择好你要的字体,这里我选择了龚凡手写体。名字为Dom。

字体选择

在脚本中需要设定批量添加的字体。

	// 设置字体
	textItem.font ="gongfanshouxiezhuanjiti"; // 你可以替换为你想要使用的字体名称

那么这个gongfanshouxiezhuanjiti是什么?为什么不填龚凡手写体呢?

这个其实就是字体的font-family

什么是font-family?

font-family 是一个CSS(层叠样式表)属性,用于为网页上的元素指定优先使用的字体列表。当在网页中设置字体时,font-family 允许你按优先顺序定义一个或多个字体名称,浏览器会根据这个列表来选择第一个可用的字体渲染文本。

如何查找font-family?

MAC

进入字体册

选中一个字体,点击信息按钮,右侧的PostScript名称就是font-family了。

WIN

浏览器开发者工具:

在网页中,右键点击想要查看字体的文本。

选择“检查”(Inspect)或者“审查元素”(Inspect Element)。

在开发者工具中,找到“Styles”(样式)面板,这里会列出所有应用到该元素的CSS样式,包括 font-family。

执行脚本

PS点击脚本--浏览--选中.jsx脚本。

然后静等脚本执行完毕即可。

生成的海报会在桌面images文件夹里,以每个人的人名来命名。

总结

第一次尝试jsx,有些功能可以更简化,懒得写了。效果达到了就可以。在此记录下,防止后面忘了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/750697.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTML静态网页成品作业(HTML+CSS)——企业摄影网介绍网页(3个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有3个页面。 二、作品演示 三、代…

Micro-ROS是什么?

Micro-ROS是ROS&#xff08;Robot Operating System&#xff0c;机器人操作系统&#xff09;生态系统的一个重要组成部分&#xff0c;专为微控制器&#xff08;Microcontrollers&#xff09;设计的轻量级ROS版本。它的目标是在资源有限的嵌入式平台上实现ROS 2的功能&#xff0…

各省药品集中采购平台-地方药品集采分析数据库

国家第十批药品集中采购的启动时间暂未明确&#xff0c;但即将到来&#xff0c;在5月&#xff0c;国家医保局发布了《关于加强区域协同做好2024年医药集中采购提质扩面的通知》&#xff0c;其中明确指出将“开展新批次国家组织药品和医用耗材集中带量采购&#xff0c;对协议期满…

转转游戏MQ重构:思考与心得之旅

文章目录 1 背景1.1 起始之由1.2 重构前现状1.3 问题分析 2 重构2.1 目标2.2 制定方案2.2.1 架构设计2.2.2 实施计划2.2.3 测试计划 2.3 部分细节设计 3. 总结 1 背景 游戏业务自 2017 年启航&#xff0c;至今已近乎走过七个春秋&#xff0c;历经漫长岁月的发展&#xff0c;不…

应用图扑 HT for Web 搭建拓扑关系图

拓扑结构在计算机网络设计和通信领域中非常重要&#xff0c;因为它描述了网络中的设备&#xff08;即“点”&#xff09;如何相互连接&#xff08;即通过“线”&#xff09;。这种结构不仅涉及物理布局&#xff0c;即物理拓扑&#xff0c;还可以涉及逻辑或虚拟的连接方式&#…

C++ ─── vector模拟实现的扩容拷贝问题

扩容拷贝问题 源代码使用memcpy拷贝&#xff0c;在使用vector<int>存储内置类型时没有问题&#xff0c; 但是如果存储的是含有指针的类型&#xff0c;如string&#xff0c;就会发生浅拷贝问题 //3、容量相关void reserve(size_t n){if (n > capacity()){size_t old_si…

数字水产养殖中的鱼类追踪、计数和行为分析技术

随着全球人口增长和生态环境退化&#xff0c;传统捕捞已无法满足人类对水产品的需求&#xff0c;水产养殖成为主要的鱼类来源。数字水产养殖利用先进技术和数据驱动方法&#xff0c;对提高生产效率、改善鱼类福利和资源管理具有显著优势。 1 数字水产养殖的重要性 1.1 提高生…

Java web应用性能分析之【prometheus监控指标体系】

Java web应用性能分析之【系统监控工具prometheus】_javaweb服务器性能监控工具-CSDN博客 Java web应用性能分析之【prometheusGrafana监控springboot服务和服务器监控】_grafana 导入 prometheus-CSDN博客 因为篇幅原因&#xff0c;前面没有详细说明Prometheus的监控指标&…

小红书2024LLM论文分享

2024小红书大模型论文分享 BatchEval基于LLM评估LLM生成文本的质量 ACL2024 https://ypw0102.github.io/ 如果文本评价需要多个维度&#xff0c;需要调整BatchEval么&#xff1f; 目前是完整流程走一遍的&#xff0c;因此没有具体考虑细粒度。 评测连续的数据域&#xff0c;S…

使用飞书多维表格实现推送邮件

一、为什么用飞书&#xff1f; 在当今竞争激烈的商业环境中&#xff0c;选择一款高效、智能的办公工具至关重要。了解飞书的朋友应该都知道&#xff0c;飞书的集成能力是很强大的&#xff0c;能够与各种主流的办公软件无缝衔接&#xff0c;实现数据交互&#xff0c;提升工作效…

VAE-pytorch代码

import osimport torch import torch.nn as nn import torch.nn.functional as F from torch.utils.data import DataLoaderfrom torchvision import transforms, datasets from torchvision.utils import save_imagefrom tqdm import tqdmclass VAE(nn.Module): # 定义VAE模型…

基于盲信号处理的声音分离-基于改进的信息最大化的ICA算法

基于信息最大化的ICA算法的主要依据是使输入端与输出端的互信息达到最大&#xff0c;且输出各个分量之间的相关性最小化&#xff0c;即输出各个分量之间互信息量最小化&#xff0c;其算法的系统框图如图所示。 基于信息最大化的ICA算法的主要依据是使输入端与输出端的互信息达到…

java基于ssm+jsp 弹幕视频网站

1前台首页功能模块 弹幕视频网站&#xff0c;在弹幕视频网站可以查看首页、视频信息、商品信息、论坛信息、我的、跳转到后台、购物车、客服等内容&#xff0c;如图1所示。 图1前台首页界面图 登录&#xff0c;通过登录填写账号、密码等信息进行登录操作&#xff0c;如图2所示…

Sparse4D v1

Sparse4D: Multi-view 3D Object Detection with Sparse Spatial-Temporal Fusion 单位&#xff1a;地平线 GitHub&#xff1a;https://github.com/HorizonRobotics/Sparse4D 论文&#xff1a;https://arxiv.org/abs/2211.10581 时间&#xff1a;2022-11 找博主项目讨论方…

【MotionCap】conda 链接缺失的cuda库

conda 安装的环境不知道为啥python 环境里的 一些cuda库是空的要自己链接过去。ln 前面是已有的,后面是要新创建的 ln -s <path to the file/folder to be linked> cuda 有安装 libcublas 已经在cuda中 (base) zhangbin@ubuntu-server:~/miniconda3/envs/ai-mocap/lib/…

ARM芯片架构(RTOS)

前言&#xff1a;笔记韦东山老师的rtos教程&#xff0c;连接放在最后 #ARM介绍 arm芯片属于精简指令集risc&#xff0c;所用的指令比较简单&#xff0c;ARM架构是一种精简指令集&#xff08;RISC&#xff09;架构&#xff0c;广泛应用于移动设备、嵌入式系统、物联网等领域。AR…

40.设计HOOK引擎的好处

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 上一个内容&#xff1a;39.右键弹出菜单管理游戏列表 以 39.右键弹出菜单管理游戏列表 它的代码为基础进行修改 效果图&#xff1a; 实现步骤&#xff1a; 首…

吴恩达2022机器学习专项课程C2W3:2.27 选修_数据倾斜

目录 处理不平衡数据集1.分类需求描述2.计算精确率和召回率 权衡精确率和召唤率1.手动调整阈值2.F1分数 总结 处理不平衡数据集 1.分类需求描述 如果你在处理一个机器学习应用&#xff0c;其中正例和负例的比例&#xff08;用于解决分类问题&#xff09;非常不平衡&#xff0…

图像大小调整(缩放)

尺寸调整前尺寸调整前 1、背景介绍 在深度学习中&#xff0c;将图像调整到固定尺寸&#xff08;如28x28像素&#xff09;的操作是非常常见的&#xff0c;尤其是在处理诸如图像分类、物体检测和图像分割等任务时。这种操作有几个重要原因&#xff1a; 标准化输入&#xff1a;许…

MYSQL 四、mysql进阶 5(InnoDB数据存储结构)

一、数据库的存储结构&#xff1a;页 索引结构给我们提供了高效的索引方式&#xff0c;不过索引信息以及数据记录都是保存在文件上的&#xff0c;确切说时存储在页结构中&#xff0c;另一方面&#xff0c;索引是在存储引擎中实现的&#xff0c;Mysql服务器上的存储引擎负责对表…