Class PtFlResource

PtFlResource class

类 PtFlResource。包含图案填充图层数据。

public class PtFlResource : FillLayerResource

构造函数

姓名描述
PtFlResource(string, string)初始化一个新的实例PtFlResource类.

特性

姓名描述
AlignWithLayer { get; set; }获取或设置一个值,该值指示是否[与图层对齐]。
IsLinkedWithLayer { get; set; }获取或设置一个值,该值指示该实例是否链接到图层。
override Key { get; }获取图层资源键。
override Length { get; }获取以字节为单位的图层资源长度。
Offset { get; set; }获取或设置偏移量。
PatternId { get; set; }获取或设置模式标识符。
PatternName { get; set; }获取或设置模式的名称。
override PsdVersion { get; }获取层资源所需的最小 psd 版本。 0 表示没有限制。
Scale { get; set; }获取或设置比例。
override Signature { get; }获取图层资源签名。

方法

姓名描述
override Save(StreamContainer, int)将资源保存到指定的流容器中。
override ToString()返回一个String代表这个实例.

字段

姓名描述
const TypeToolKey类型工具信息键。

例子

以下示例演示了对加载和编辑 PtFlResource 资源的支持。

[C#]

string sourceFileName = "PatternFillLayer.psd";
string exportPath = "PtFlResource_Edited.psd";
double tolerance = 0.0001;
var im = (PsdImage)Image.Load(sourceFileName);
using (im)
{
    foreach (var layer in im.Layers)
    {
        if (layer is FillLayer)
        {
            var fillLayer = (FillLayer)layer;
            var resources = fillLayer.Resources;
            foreach (var res in resources)
            {
                if (res is PtFlResource)
                {
                    // 阅读
                    PtFlResource resource = (PtFlResource)res;
                    if (
                        resource.Offset.X != -46 ||
                        resource.Offset.Y != -45 ||
                        resource.PatternId != "a6818df2-7532-494e-9615-8fdd6b7f38e5\0" ||
                        resource.PatternName != "$$$/Presets/Patterns/OpticalSquares=Optical Squares\0" ||
                        resource.AlignWithLayer != true ||
                        resource.IsLinkedWithLayer != true ||
                        !(Math.Abs(resource.Scale - 50) < tolerance))
                    {
                        throw new Exception("PtFl Resource was read incorrect");
                    }

                    // 编辑
                    resource.Offset = new Point(-11, 13);
                    resource.Scale = 200;
                    resource.AlignWithLayer = false;
                    resource.IsLinkedWithLayer = false;
                    fillLayer.Resources = fillLayer.Resources;
                    // 我们在 PattResource 中没有模式数据,所以我们可以添加它。
                    var fillSettings = (PatternFillSettings)fillLayer.FillSettings;
                    fillSettings.PatternData = new int[]
                    {
                        Color.Black.ToArgb(),
                        Color.White.ToArgb(),
                        Color.White.ToArgb(),
                        Color.White.ToArgb(),
                    };
                    fillSettings.PatternHeight = 1;
                    fillSettings.PatternWidth = 4;
                    fillSettings.PatternName = "$$$/Presets/Patterns/VerticalLine=Vertical Line New\0";
                    fillSettings.PatternId = Guid.NewGuid().ToString() + "\0";
                    fillLayer.Update();
                }
                break;
            }
            break;
        }
    }

    im.Save(exportPath);
}

也可以看看