Photoshop 自动拼图工具是一款用于批量图片拼接的 JSX 脚本工具。它支持多张 JPG / PNG 图片一键导入,并可根据使用场景选择横向或纵向排列。工具会自动计算总宽度、高度和最大边界,创建合适尺寸的画布,再将图片图层逐一精准定位,确保所有图片完整显示在画布范围内。无需手动扩展画布、拖拽图层或对齐图片,能够显著提升截图整理、界面展示和素材合成效率。
1. 保存为 xxx.jsx,
2. 文件 → 脚本 → 浏览 → 选择 xxx.jsx
#target photoshopapp.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 ? "横向拼接完成" : "纵向拼接完成");
}
