求Photoshop脚本:矩形选框自动对齐参考线
Photoshop 参考线对齐选区脚本实现
功能说明
- 自动识别画布中的水平/垂直参考线,生成精准对齐参考线的矩形选区,兼容2条或4条参考线场景
- 支持两种核心选区模式:基于参考线范围创建选区、从参考线延伸至画布底部创建选区
- 可快速切换矩形/正方形选区(正方形模式下会按最短边等比例锁定)
脚本代码
// Photoshop 参考线对齐选区脚本 // 社区贡献实现 // 获取当前活动文档 var doc = app.activeDocument; if (doc == null) { alert("请先打开一个文档!"); exit(); } // 收集水平和垂直参考线 var horizontalGuides = []; var verticalGuides = []; for (var i = 0; i < doc.guides.length; i++) { var guide = doc.guides[i]; if (guide.direction == Direction.HORIZONTAL) { horizontalGuides.push(guide.coordinate); } else { verticalGuides.push(guide.coordinate); } } // 检查参考线数量是否符合要求 if ((horizontalGuides.length + verticalGuides.length) < 2) { alert("请至少添加2条参考线(1水平+1垂直,或2水平/2垂直)!"); exit(); } // 排序参考线坐标(从小到大) horizontalGuides.sort(function(a, b) { return a - b; }); verticalGuides.sort(function(a, b) { return a - b; }); // 弹出模式选择对话框 var dialog = new Window("dialog", "选区模式选择"); dialog.orientation = "column"; dialog.alignChildren = ["fill", "top"]; dialog.add("statictext", undefined, "请选择选区模式:"); var modeGroup = dialog.add("radiogroup", undefined, [ "1. 对齐参考线范围创建选区", "2. 从参考线延伸至画布底部" ]); modeGroup.selection = 0; var squareCheckbox = dialog.add("checkbox", undefined, "创建正方形选区"); squareCheckbox.value = false; var btnGroup = dialog.add("group"); btnGroup.orientation = "row"; btnGroup.alignChildren = ["right", "center"]; var okBtn = btnGroup.add("button", undefined, "确定"); var cancelBtn = btnGroup.add("button", undefined, "取消"); var dialogResult = dialog.show(); if (dialogResult != 1) exit(); var selMode = modeGroup.selection; var makeSquare = squareCheckbox.value; // 计算选区坐标 var selX1, selY1, selX2, selY2; if (selMode == 0) { // 模式1:对齐参考线范围 selX1 = verticalGuides.length > 0 ? verticalGuides[0] : 0; selY1 = horizontalGuides.length > 0 ? horizontalGuides[0] : 0; selX2 = verticalGuides.length > 1 ? verticalGuides[1] : doc.width.value; selY2 = horizontalGuides.length > 1 ? horizontalGuides[1] : doc.height.value; } else { // 模式2:延伸至画布底部 selX1 = verticalGuides.length > 0 ? verticalGuides[0] : 0; selY1 = horizontalGuides.length > 0 ? horizontalGuides[0] : 0; selX2 = verticalGuides.length > 1 ? verticalGuides[1] : doc.width.value; selY2 = doc.height.value; } // 处理正方形选区 if (makeSquare) { var width = selX2 - selX1; var height = selY2 - selY1; var sideLength = Math.min(width, height); // 保持选区居中 selX1 = selX1 + (width - sideLength)/2; selX2 = selX1 + sideLength; selY1 = selY1 + (height - sideLength)/2; selY2 = selY1 + sideLength; } // 创建选区 doc.selection.select([ [selX1, selY1], [selX2, selY1], [selX2, selY2], [selX1, selY2] ]); alert("选区已创建完成!");
使用步骤
- 打开Photoshop并加载目标文档
- 根据需求添加参考线:
- 要创建中间选区:添加上下左右4条参考线,或1水平+1垂直参考线(选区将从参考线延伸至画布边缘)
- 要创建到底部的选区:添加顶部水平参考线+左右垂直参考线
- 执行「文件 > 脚本 > 浏览」,选择保存好的脚本文件运行
- 在弹出的对话框中选择选区模式,按需勾选「创建正方形选区」,点击确定即可生成选区
效果说明
- 对齐参考线选区:选区的边缘会精准贴合你设置的参考线位置,无论参考线数量是2条还是4条
- 模式1效果:基于参考线划定的范围生成矩形/正方形选区,比如4条参考线时选中间区域,2条参考线时选参考线到画布边缘的区域
- 模式2效果:从顶部参考线位置开始,向下延伸至画布底部,左右对齐垂直参考线生成选区
内容的提问来源于stack exchange,提问作者Tsunami Lâm
相关产品推荐
相关产品推荐

