Photoshop 多图自动拼接工具,支持横向 / 纵向排列,一键自动扩展画布并生成长图
Photoshop 自动拼图工具是一款用于批量图片拼接的 JSX 脚本工具。它支持多张 JPG / PNG 图片一键导入,并可根据使用场景选择横向或纵向排列。工具会自动计算总宽度、高度和最大边界,创建合适尺寸的画布,再将图片图层逐一精准定位,确保所有图片完整显示在画布范围内。无需手动扩展画布、拖拽图层或对齐图片,能够显著提升截图整理、界面展示和素材合成效率。
1. 保存为 xxx.jsx,
2. 文件 → 脚本 → 浏览 → 选择 xxx.jsx
#target photoshop
app.displayDialogs = DialogModes.NO;
var files = File.openDialog("选择要拼接的图片", "*.jpg;*.jpeg;*.png", true);
if (files && files.length > 0) {
var isHorizontal = confirm("点击【确定】= 横向拼接\n点击【取消】= 纵向拼接");
var docs = [];
var sizes = [];
var totalWidth = 0;
var totalHeight = 0;
var maxWidth = 0;
var maxHeight = 0;
// 先打开所有图片并记录尺寸
for (var i = 0; i < files.length; i++) {
var doc = app.open(files[i]);
var w = doc.width.as("px");
var h = doc.height.as("px");
docs.push(doc);
sizes.push({
width: w,
height: h
});
totalWidth += w;
totalHeight += h;
if (w > maxWidth) maxWidth = w;
if (h > maxHeight) maxHeight = h;
}
var canvasWidth = isHorizontal ? totalWidth : maxWidth;
var canvasHeight = isHorizontal ? maxHeight : totalHeight;
// 创建结果画布
var resultDoc = app.documents.add(
canvasWidth,
canvasHeight,
72,
isHorizontal ? "横向拼接结果" : "纵向拼接结果",
NewDocumentMode.RGB,
DocumentFill.WHITE
);
var currentX = 0;
var currentY = 0;
for (var j = 0; j < docs.length; j++) {
app.activeDocument = docs[j];
docs[j].selection.selectAll();
docs[j].selection.copy();
app.activeDocument = resultDoc;
resultDoc.paste();
var layer = resultDoc.activeLayer;
layer.name = "图片_" + (j + 1);
// 关键修复:读取当前图层实际位置
var bounds = layer.bounds;
var layerLeft = bounds[0].as("px");
var layerTop = bounds[1].as("px");
var targetX = 0;
var targetY = 0;
if (isHorizontal) {
// 横向:从左到右,顶部对齐
targetX = currentX;
targetY = 0;
currentX += sizes[j].width;
} else {
// 纵向:从上到下,左侧对齐
targetX = 0;
targetY = currentY;
currentY += sizes[j].height;
}
// 不是直接 translate(currentX, 0),而是移动到精确坐标
layer.translate(targetX - layerLeft, targetY - layerTop);
docs[j].close(SaveOptions.DONOTSAVECHANGES);
}
app.activeDocument = resultDoc;
alert(isHorizontal ? "横向拼接完成" : "纵向拼接完成");
}
浙公网安备 33010602011771号