
告诉它画图任务我的电脑有绿色版的Photoshop CS6位置在E盘E:\Program Files (x86)\Adobe Photoshop CS6\Adobe Photoshop CS6\Photoshop.exe 你能代替我操作这个软件新建一个纯红色的正方形图片吗要求jpg格式。保存位置默认为E盘根目录。自动联网查找了GB 12982-2004《国旗》与《国旗制法说明》中国人大网/中国政府网官方网络版自动创建了脚本五星红旗标准画法.jsx。保留了辅助参考线和最终效果图。/* 五星红旗中华人民共和国国旗标准画法 依据GB 12982-2004《国旗》《国旗制法说明》 1号旗 2880 x 1920 (3:2)1 格 96px ------------------------------------------------------------ 旗面划 4 等分左上长方形划 15(横) x 10(纵) 格 大星心 (5,5)格外接圆半径 3 格一角尖朝正上方 小星心 (10,2) (12,4) (12,7) (10,9) 格半径 1 格 每颗小星一角尖正对大星中心 */ try { var oldRuler app.preferences.rulerUnits; var oldDialogs app.displayDialogs; app.preferences.rulerUnits Units.PIXELS; app.displayDialogs DialogModes.NO; var W 2880, H 1920, U 96; var PHI2 0.3819660112501051; // 内/外半径 1/phi^2 function C(r, g, b) { var c new SolidColor(); c.rgb.red r; c.rgb.green g; c.rgb.blue b; return c; } var RED C(238, 28, 37); // 国旗红 #EE1C25 var YEL C(255, 255, 0); // 五星黄 #FFFF00 var CYA C(0, 255, 255); // 辅助线-青 var WHT C(255, 255, 255); // 辅助线-白 var doc app.documents.add( new UnitValue(W, px), new UnitValue(H, px), 72, 五星红旗-标准画法, NewDocumentMode.RGB, DocumentFill.WHITE, 1 ); /* ---------- 子路径构造器 ---------- */ function subPoly(co, op) { var arr []; for (var k 0; k co.length; k) { var pt new PathPointInfo(); pt.anchor co[k]; pt.leftDirection co[k]; pt.rightDirection co[k]; pt.kind PointKind.CORNERPOINT; arr.push(pt); } var sp new SubPathInfo(); sp.closed true; sp.operation op; sp.entireSubPath arr; return sp; } function subRect(x1, y1, x2, y2) { return subPoly([[x1, y1], [x2, y1], [x2, y2], [x1, y2]], ShapeOperation.SHAPEADD); } function subH(x, y, len, t) { return subRect(x, y - t / 2, x len, y t / 2); } function subV(x, y, len, t) { return subRect(x - t / 2, y, x t / 2, y len); } function subSeg(x1, y1, x2, y2, t) { var dx x2 - x1, dy y2 - y1, L Math.sqrt(dx * dx dy * dy); var nx -dy / L * t / 2, ny dx / L * t / 2; return subPoly([[x1 nx, y1 ny], [x2 nx, y2 ny], [x2 - nx, y2 - ny], [x1 - nx, y1 - ny]], ShapeOperation.SHAPEADD); } function subCirc(cx, cy, r, op, n) { var co [], k, a; for (k 0; k n; k) { a k * 2 * Math.PI / n; co.push([cx r * Math.cos(a), cy r * Math.sin(a)]); } return subPoly(co, op); } function subRing(cx, cy, R, t, n) { return [subCirc(cx, cy, R t / 2, ShapeOperation.SHAPEADD, n), subCirc(cx, cy, R - t / 2, ShapeOperation.SHAPESUBTRACT, n)]; } function paint(name, subs, col) { var p doc.pathItems.add(name, subs); p.fillPath(col, ColorBlendMode.NORMAL, 100, false, 0, true); return p; } /* ---------- 1. 旗面铺红背景层 ---------- */ doc.selection.selectAll(); doc.selection.fill(RED); doc.selection.deselect(); /* ---------- 2. 几何基准 ---------- */ var bigC [5 * U, 5 * U]; // 大星心 (480,480) var bigR 3 * U; // 大星外接圆半径 288 var sC [[10 * U, 2 * U], [12 * U, 4 * U], [12 * U, 7 * U], [10 * U, 9 * U]]; var sR U; // 小星外接圆半径 96 var i; /* ---------- 3. Photoshop 参考线 (Guides) ---------- */ var gx, gy; for (gx U; gx W / 2; gx U) { doc.guides.add(Direction.VERTICAL, new UnitValue(gx, px)); } for (gy U; gy H / 2; gy U) { doc.guides.add(Direction.HORIZONTAL, new UnitValue(gy, px)); } doc.guides.add(Direction.VERTICAL, new UnitValue(W / 2, px)); // 左右等分 doc.guides.add(Direction.HORIZONTAL, new UnitValue(H / 2, px)); // 上下等分 /* ---------- 4. 五角星黄 ---------- */ var starLayer doc.artLayers.add(); starLayer.name 五角星; doc.activeLayer starLayer; function starPoly(cx, cy, R, theta) { var r R * PHI2, co [], k, a; for (k 0; k 5; k) { a theta k * 2 * Math.PI / 5; co.push([cx R * Math.cos(a), cy R * Math.sin(a)]); a theta Math.PI / 5 k * 2 * Math.PI / 5; co.push([cx r * Math.cos(a), cy r * Math.sin(a)]); } return co; } var subsStar [subPoly(starPoly(bigC[0], bigC[1], bigR, -Math.PI / 2), ShapeOperation.SHAPEADD)]; for (i 0; i 4; i) { var th Math.atan2(bigC[1] - sC[i][1], bigC[0] - sC[i][0]); subsStar.push(subPoly(starPoly(sC[i][0], sC[i][1], sR, th), ShapeOperation.SHAPEADD)); } paint(五星, subsStar, YEL); /* ---------- 5. 辅助参考线图层内容 ---------- */ var refLayer doc.artLayers.add(); refLayer.name 参考线(辅助); doc.activeLayer refLayer; var T_GRID 4, T_BORD 6, T_CIR 5, T_CON 3, T_MK 4, MK 24; var subsCyan []; subsCyan.push(subH(0, T_BORD / 2, W, T_BORD)); // 旗面外框 subsCyan.push(subH(0, H - T_BORD / 2, W, T_BORD)); subsCyan.push(subV(T_BORD / 2, 0, H, T_BORD)); subsCyan.push(subV(W - T_BORD / 2, 0, H, T_BORD)); subsCyan.push(subV(W / 2, 0, H, T_GRID)); // 四等分线 subsCyan.push(subH(0, H / 2, W, T_GRID)); for (gx U; gx W / 2; gx U) { subsCyan.push(subV(gx, 0, H / 2, T_GRID)); } // 15 格 for (gy U; gy H / 2; gy U) { subsCyan.push(subH(0, gy, W / 2, T_GRID)); } // 10 格 for (i 0; i 4; i) { // 圆心连线定向依据 subsCyan.push(subSeg(sC[i][0], sC[i][1], bigC[0], bigC[1], T_CON)); } var subsWhite []; var ring; ring subRing(bigC[0], bigC[1], bigR, T_CIR, 120); // 大星外接圆 subsWhite.push(ring[0]); subsWhite.push(ring[1]); for (i 0; i 4; i) { // 小星外接圆 ring subRing(sC[i][0], sC[i][1], sR, T_CIR, 48); subsWhite.push(ring[0]); subsWhite.push(ring[1]); } for (i 0; i 5; i) { // 圆心十字 var mx (i 0) ? bigC[0] : sC[i - 1][0]; var my (i 0) ? bigC[1] : sC[i - 1][1]; subsWhite.push(subH(mx - MK, my, 2 * MK, T_MK)); subsWhite.push(subV(mx, my - MK, 2 * MK, T_MK)); } paint(辅助-青, subsCyan, CYA); paint(辅助-白, subsWhite, WHT); /* ---------- 6. 输出 ---------- */ var jopts new JPEGSaveOptions(); jopts.quality 12; var f1 new File(E:/flag_01_ref.jpg); // 参考线版 doc.saveAs(f1, jopts, true, Extension.LOWERCASE); refLayer.visible false; // 隐藏参考线 - 成品 var popts new PNGSaveOptions(); popts.compression 9; popts.interlaced false; var f2 new File(E:/flag_02_final.png); doc.saveAs(f2, popts, true, Extension.LOWERCASE); var f3 new File(E:/flag_03_final.jpg); doc.saveAs(f3, jopts, true, Extension.LOWERCASE); refLayer.visible true; // 恢复便于在 PS 中查看 var paths doc.pathItems.length; try { doc.pathItems.removeAll(); } catch (eP) { } app.preferences.rulerUnits oldRuler; app.displayDialogs oldDialogs; OK|doc doc.name |W doc.width.as(px) |H doc.height.as(px) |guides doc.guides.length |layers doc.layers.length |pathsCreated paths |pathsNow doc.pathItems.length |f1 f1.length |f2 f2.length |f3 f3.length; } catch (e) { ERR| e.message |line e.line |file (e.fileName ? e.fileName : -); }这种就不是AI直接生图只消耗了一点点的积分。