【问题标题】:JSX/Photoshop: layer opacity issueJSX/Photoshop:图层不透明度问题
【发布时间】:2015-01-23 12:59:33
【问题描述】:

Photoshop CS6/JSX。我正在通过增加或减少 10 来更改所选图层的不透明度。我遇到的问题:

当将值减少 10 时,我会得到以下减少的序列:

100 - 90 - 80 - 71 - 61 - 51 - 41 - 31 - 22 - 12 - 2

当增加结果是:

0 - 10 - 20 - 31 - 41 - 51 - 61 - 71 - 82 - 92

代码是这样的:

var opc = app.activeDocument.activeLayer.opacity;
desc2.putUnitDouble(cTID('Opct'), cTID('#Prc'), opc - 10.0);

/* or

desc2.putUnitDouble(cTID('Opct'), cTID('#Prc'), opc + 10.0); */

您知道如何解决它以仅获得 10 的倍数吗?

提前致谢

【问题讨论】:

  • 在设置新值之前,您能否确保您的 opc 变量每个都向下舍入到最接近的 10?
  • 顺便说一句,不透明度变量是读/写的。你不需要处理那个丑陋的脚本监听器代码。
  • 嗯,我一直在寻找可以强制舍入结果的快捷方式。我知道我可以检查变量是否被舍入。另外,我知道我不需要听众。它是由 action2js 脚本生成的,它是如此丑陋。送之前没洗干净。请原谅我。非常感谢您的帮助。
  • 100-10 = 90.1960784313726 :)
  • Math.round() 是快捷方式: var opc = Math.round(app.activeDocument.activeLayer.opacity);

标签: opacity photoshop layer jsx


【解决方案1】:

Math.round() 可以解决问题。首先,强制图层的不透明度为圆形:

var opc = Math.round(app.activeDocument.activeLayer.opacity)

现在您可以通过添加或减去所需值来更改不透明度:

app.activeDocument.activeLayer.opacity = opc -10; //or +10

感谢 Anna Forrest 的帮助。

【讨论】:

    猜你喜欢
    • 2012-02-12
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-22
    • 1970-01-01
    • 2010-11-09
    • 2011-06-04
    相关资源
    最近更新 更多