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

如何在Photoshop JSX脚本中创建透明色用于填充操作

解决Photoshop JSX脚本填充透明背景色的问题

方法1:将8位HEX颜色转换为带Alpha的SolidColor

SolidColor本身支持设置alpha通道,只是rgb.hexValue仅接受6位不带透明度的HEX值。你可以把8位HEX(格式如#RRGGBBAA)拆分为颜色部分和透明度部分,手动赋值:

// 假设options.bgColor是8位HEX,比如"#FFFFFF00"(白色完全透明)
var bgHex = options.bgColor.replace("#", "");
var rgbHex = bgHex.substring(0, 6);
var alphaHex = bgHex.substring(6, 8);

// 创建SolidColor并设置颜色和透明度
var bgColor = new SolidColor();
bgColor.rgb.hexValue = rgbHex;
// 将两位十六进制Alpha转换为0-1的小数(Photoshop的alpha用0-1表示)
bgColor.alpha = parseInt(alphaHex, 16) / 255;

// 设置背景色
app.backgroundColor = bgColor;

// 填充选区
app.activeDocument.selection.fill(bgColor);

方法2:直接填充完全透明色

如果只需填充完全透明的区域,不需要指定底色,有两种简洁方式:

方式A:创建Alpha为0的SolidColor

var transparentColor = new SolidColor();
transparentColor.rgb.hexValue = "FFFFFF"; // 颜色不影响,alpha设为0即可
transparentColor.alpha = 0;

app.activeDocument.selection.fill(transparentColor);

方式B:用FillOptions设置填充不透明度

var fillOpts = new FillOptions();
fillOpts.opacity = 0; // 完全透明
fillOpts.blendMode = BlendMode.NORMAL;

// 用前景色填充(前景色不影响,因为opacity为0)
app.activeDocument.selection.fill(app.foregroundColor, fillOpts);

注意事项

  • Photoshop的SolidColor.alpha属性取值范围是0(完全透明)到1(完全不透明),并非0-255,所以需要把十六进制的alpha值转换为0-1的小数。
  • 如果当前文档没有Alpha通道,填充透明色前需要先添加:app.activeDocument.channels.add();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 05:15:01