You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Photoshop脚本修改纯色图层为随机色报错,求修正及PNG导出实现

修正后的Photoshop脚本及功能实现

问题分析

错误1320 Invalid enumeration value是因为你使用了不存在的LayerKind.COLOR枚举值——Photoshop JavaScript API中,纯色填充图层的正确枚举是LayerKind.SOLIDFILL。此外,代码中多余的adjustColorBalance调用无需保留,fill()方法已能直接覆盖图层颜色。

修正后的完整代码

var originalRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;

var activeDocument = app.activeDocument;
var colorLayers = [];

// 生成随机RGB颜色
var randomColor = function() {
  var color = new SolidColor();
  color.rgb.red = Math.floor(Math.random() * 256);
  color.rgb.green = Math.floor(Math.random() * 256);
  color.rgb.blue = Math.floor(Math.random() * 256);
  return color;
}

// 筛选纯色填充图层(若需包含普通像素图层可保留 || layer.kind === LayerKind.NORMAL)
for (var i = 0; i < activeDocument.layers.length; i++) {
  var layer = activeDocument.layers[i];
  // 修正枚举值:纯色填充图层使用LayerKind.SOLIDFILL
  if (layer.kind === LayerKind.SOLIDFILL) {
    colorLayers.push(layer);
  }
}

// 为选中的图层设置随机颜色
for (var i = 0; i < colorLayers.length; i++) {
  colorLayers[i].fill(randomColor());
}

// PNG导出功能
var exportPath = activeDocument.path + "/" + activeDocument.name.replace(/\.[^\.]+$/, "") + "_randomized.png";
var exportOptions = new ExportOptionsSaveForWeb();
exportOptions.format = SaveDocumentType.PNG;
exportOptions.PNG8 = false; // 使用PNG-24格式
exportOptions.transparency = true; // 保留图层透明度
exportOptions.interlaced = false;

activeDocument.exportDocument(new File(exportPath), ExportType.SAVEFORWEB, exportOptions);

app.preferences.rulerUnits = originalRulerUnits;

关键说明

  • 图层筛选修正:仅保留LayerKind.SOLIDFILL确保只处理纯色填充图层,若需要同时修改普通像素图层,可恢复|| layer.kind === LayerKind.NORMAL判断。
  • PNG导出配置:
    • 导出路径基于原文件路径,自动添加_randomized后缀避免覆盖原文件
    • 使用PNG-24格式并保留透明度,可根据需求调整PNG8、transparency等参数
    • 通过SaveForWeb方式导出,保证PNG格式的兼容性

内容的提问来源于stack exchange,提问作者Tyler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 05:35:40