以下是一个满足你需求的 Photoshop 脚本代码: ```javascript // 获取当前文档 var doc = app.activeDocument; // 遍历文档中的所有图层 for (var i = 0; i < doc.layers.length; i++) { var layer = doc.layers[i]; // 计算图层的宽高比 var aspectRatio = layer.bounds[2] - layer.bounds[0] / (layer.bounds[3] - layer.bounds[1]); // 根据宽高比调整图层大小 if (aspectRatio > 1) { // 如果宽高比大于1,将宽度设置为900像素 layer.resize(900 / (layer.bounds[2] - layer.bounds[0]) * 100, null, AnchorPosition.MIDDLECENTER); } else { // 如果宽高比小于等于1,将高度设置为900像素 layer.resize(null, 900 / (layer.bounds[3] - layer.bounds[1]) * 100, AnchorPosition.MIDDLECENTER); } // 计算图层相对于画布左右居中的偏移量 var horizontalOffset = (doc.width.value - (layer.bounds[2] - layer.bounds[0])) / 2; // 计算图层相对于画布上下居中的偏移量 var verticalOffset = (doc.height.value - (layer.bounds[3] - layer.bounds[1])) / 2; // 移动图层到居中位置 layer.translate(horizontalOffset, verticalOffset); } ``` 额外需要注意的逻辑点 1. 此脚本会对文档中的所有图层进行操作,如果只想处理特定图层,需要添加额外的判断逻辑来筛选图层。 2. 脚本假设文档的单位是像素,如果文档的单位不是像素,可能会导致计算结果不准确,需要先将单位转换为像素或者修改脚本中的计算逻辑。 3. 脚本运行前最好先保存文档,因为脚本会直接修改图层的大小和位置,如果操作有误可能无法恢复。 [2025-07-04 22:16:57 | AI写代码神器 | 464点数解答]