Photoshop 透明度修整
Photoshop transparency trimming
我是编程新手,现在我只能用 C# 编写代码。
我真的需要你的帮助来制作 Photoshop trimming 脚本。我已经搜索了几天,但找不到如何实现我想要的。
它是这样的。
我有一个从 canvas 的原点偏移的字符的 PNG 图像。
现在我想 trim 左右两侧的透明度相等,直到我从左侧或右侧(先到者)击中第一个像素,然后停止 trim(这意味着一侧不会trim由于与原点的偏移,所以一直都通过)。顶部和底部也一样。几个星期以来我为此感到绝望,如果有人能帮助我,我会很高兴。
下面是示例图片。
enter image description here
例如:
// save current preferences and make sure PS units are in pixels
var startRulerUnits = preferences.rulerUnits
preferences.rulerUnits = Units.PIXELS
// initial variables
var doc = activeDocument;
var docW = doc.width;
var docH = doc.height;
var al = doc.activeLayer;
// bounds is an array of [left, top, right, bottom]
// coordinates from the top left corner
var bounds = al.bounds;
// distances from each side of the document
var left = bounds[0];
var right = docW - bounds[2];
var top = bounds[1];
var bottom = docH - bounds[3];
// values to resize to. if left is more than right,
// then use the smaller value multiplied by two,
// say doc width is 400px, distance from right is 50px, from left is 150px:
// crop to 400-50*2 = 300px
var resizeWidth = docW - (left > right ? right * 2: left * 2);
var resizeHeight = docH - (top > bottom ? bottom * 2: top * 2);
doc.resizeCanvas(resizeWidth, resizeHeight)
// restore original units
preferences.rulerUnits = startRulerUnits
虽然上面的答案是你需要的,(我不是想与之竞争)它可能对以后的参考有用,注意你可以 trim 到最小的边界框,然后调整canvas 之后的尺寸。
//trim image to transparent width
app.activeDocument.trim(TrimType.TRANSPARENT, true, true, true, true);
// adjust canvas size
//app.activeDocument.resizeCanvas(WIDTH, HEIGHT, AnchorPosition.MIDDLECENTER);
// AnchorPosition can vary, depending on what you want
我是编程新手,现在我只能用 C# 编写代码。 我真的需要你的帮助来制作 Photoshop trimming 脚本。我已经搜索了几天,但找不到如何实现我想要的。 它是这样的。 我有一个从 canvas 的原点偏移的字符的 PNG 图像。 现在我想 trim 左右两侧的透明度相等,直到我从左侧或右侧(先到者)击中第一个像素,然后停止 trim(这意味着一侧不会trim由于与原点的偏移,所以一直都通过)。顶部和底部也一样。几个星期以来我为此感到绝望,如果有人能帮助我,我会很高兴。 下面是示例图片。
enter image description here
例如:
// save current preferences and make sure PS units are in pixels
var startRulerUnits = preferences.rulerUnits
preferences.rulerUnits = Units.PIXELS
// initial variables
var doc = activeDocument;
var docW = doc.width;
var docH = doc.height;
var al = doc.activeLayer;
// bounds is an array of [left, top, right, bottom]
// coordinates from the top left corner
var bounds = al.bounds;
// distances from each side of the document
var left = bounds[0];
var right = docW - bounds[2];
var top = bounds[1];
var bottom = docH - bounds[3];
// values to resize to. if left is more than right,
// then use the smaller value multiplied by two,
// say doc width is 400px, distance from right is 50px, from left is 150px:
// crop to 400-50*2 = 300px
var resizeWidth = docW - (left > right ? right * 2: left * 2);
var resizeHeight = docH - (top > bottom ? bottom * 2: top * 2);
doc.resizeCanvas(resizeWidth, resizeHeight)
// restore original units
preferences.rulerUnits = startRulerUnits
虽然上面的答案是你需要的,(我不是想与之竞争)它可能对以后的参考有用,注意你可以 trim 到最小的边界框,然后调整canvas 之后的尺寸。
//trim image to transparent width
app.activeDocument.trim(TrimType.TRANSPARENT, true, true, true, true);
// adjust canvas size
//app.activeDocument.resizeCanvas(WIDTH, HEIGHT, AnchorPosition.MIDDLECENTER);
// AnchorPosition can vary, depending on what you want