求可基于活动选区将图片裁剪为正方形的Photoshop JavaScript脚本
Photoshop 基于不规则选区裁剪为正方形的JS脚本
- 先在Photoshop中打开目标图像,用任意选区工具创建你需要的不规则选区
- 把下方代码复制保存为后缀为
.jsx的纯文本文件 - 回到PS,点击顶部菜单「文件」>「脚本」>「浏览」,选中刚才保存的
.jsx文件运行即可
- 脚本自动识别当前选区的边界矩形,以边界矩形的最长边为边长生成覆盖整个选区的正方形裁剪范围
- 裁剪过程完全保留原图原有的分辨率(像素密度),不会压缩或拉伸图像像素
- 若未提前创建选区,脚本会自动弹出提示终止运行,避免误操作
// Photoshop 选区转正方形裁剪脚本 #target photoshop app.preferences.rulerUnits = Units.PIXELS; if (app.activeDocument.selection.bounds) { var sel = app.activeDocument.selection.bounds; var selX = sel[0].value; var selY = sel[1].value; var selWidth = sel[2].value - selX; var selHeight = sel[3].value - selY; // 取选区宽高最大值作为正方形边长 var squareSize = Math.max(selWidth, selHeight); // 计算正方形左上角坐标,让原选区居中在正方形范围内 var offsetX = (squareSize - selWidth) / 2; var offsetY = (squareSize - selHeight) / 2; var squareX = selX - offsetX; var squareY = selY - offsetY; // 边界校验,避免裁剪范围超出原图边缘 squareX = squareX < 0 ? 0 : squareX; squareY = squareY < 0 ? 0 : squareY; squareX = (squareX + squareSize > app.activeDocument.width.value) ? (app.activeDocument.width.value - squareSize) : squareX; squareY = (squareY + squareSize > app.activeDocument.height.value) ? (app.activeDocument.height.value - squareSize) : squareY; // 执行裁剪 app.activeDocument.crop([squareX, squareY, squareX + squareSize, squareY + squareSize]); } else { alert("请先创建选区后再运行脚本"); }
内容的提问来源于stack exchange,提问作者Ruslan Pukshyn
相关产品推荐
相关产品推荐

