Class VmskResource

VmskResource class

Klass VmskResource. Den här resursen innehåller information om vektorlager mask

public class VmskResource : VectorPathDataResource

Konstruktörer

namnBeskrivning
VmskResource()Initierar en ny instans avVmskResource class.
VmskResource(byte[])Initierar en ny instans avVmskResource class.

Egenskaper

namnBeskrivning
IsDisabled { get; set; }Hämtar eller ställer in ett värde som anger om denna instans är inaktiverad.
IsInverted { get; set; }Hämtar eller ställer in ett värde som anger om denna instans är inverterad.
IsNotLinked { get; set; }Hämtar eller ställer in ett värde som anger om denna instans inte är länkad.
override Key { get; }Hämtar lagerresursnyckeln.
override Length { get; }Hämtar lagerresurslängden i byte.
Paths { get; set; }Hämtar eller sätter sökvägsposterna.
override PsdVersion { get; }Hämtar psd-versionen.
override Signature { get; }Får signaturen.
Version { get; set; }Hämtar eller ställer in versionen.

Metoder

namnBeskrivning
override Save(StreamContainer, int)Sparar resursen till den angivna strömbehållaren.
override ToString()Returnerar enString som representerar denna instans.

Fält

namnBeskrivning
const TypeToolKeyTypverktygets infonyckel.

Exempel

Följande exempel visar stödet för VmskResource-resursladdning. Hur fungerar redigeringen av banor.

[C#]

[Test]
public void TestPsdNet106()
{
    string sourceFileName = "Rectangle.psd";
    string exportPath = "Rectangle_changed.psd";
    var im = (PsdImage)Image.Load(sourceFileName);
    using (im)
    {
        var resource = GetVmskResource(im);
        // Läser
        if (resource.IsDisabled != false ||
         resource.IsInverted != false ||
         resource.IsNotLinked != false ||
         resource.Paths.Length != 7 ||
         resource.Paths[0].Type != VectorPathType.PathFillRuleRecord ||
         resource.Paths[1].Type != VectorPathType.InitialFillRuleRecord ||
         resource.Paths[2].Type != VectorPathType.ClosedSubpathLengthRecord ||
         resource.Paths[3].Type != VectorPathType.ClosedSubpathBezierKnotUnlinked ||
         resource.Paths[4].Type != VectorPathType.ClosedSubpathBezierKnotUnlinked ||
         resource.Paths[5].Type != VectorPathType.ClosedSubpathBezierKnotUnlinked ||
         resource.Paths[6].Type != VectorPathType.ClosedSubpathBezierKnotUnlinked)
        {
            throw new Exception("VmskResource was read wrong");
        }
        var pathFillRule = (PathFillRuleRecord)resource.Paths[0];
        var initialFillRule = (InitialFillRuleRecord)resource.Paths[1];
        var subpathLength = (LengthRecord)resource.Paths[2];
        // Sökvägsfyllningsregeln innehåller ingen ytterligare information
        if (pathFillRule.Type != VectorPathType.PathFillRuleRecord ||
         initialFillRule.Type != VectorPathType.InitialFillRuleRecord ||
         initialFillRule.IsFillStartsWithAllPixels != false ||
         subpathLength.Type != VectorPathType.ClosedSubpathLengthRecord ||
         subpathLength.IsClosed != true ||
         subpathLength.IsOpen != false)
        {
            throw new Exception("VmskResource paths were read wrong");
        }
        // Redigering
        resource.IsDisabled = true;
        resource.IsInverted = true;
        resource.IsNotLinked = true;
        var bezierKnot = (BezierKnotRecord)resource.Paths[3];
        bezierKnot.Points[0] = new Point(0, 0);
        bezierKnot = (BezierKnotRecord)resource.Paths[4];
        bezierKnot.Points[0] = new Point(8039797, 10905190);
        initialFillRule.IsFillStartsWithAllPixels = true;
        subpathLength.IsClosed = false;
        im.Save(exportPath);
    }
}

private VmskResource GetVmskResource(PsdImage image)
{
    var layer = image.Layers[1];
    VmskResource resource = null;
    var resources = layer.Resources;
    for (int i = 0; i < resources.Length; i++)
    {
        if (resources[i] is VmskResource)
        {
            resource = (VmskResource)resources[i];
            break;
        }
    }
    if (resource == null)
    {
        throw new Exception("VmskResource not found");
    }
    return resource;
}

Se även