Class VmskResource

VmskResource class

Klasse VmskResource. Deze bron bevat informatie over vectorlaagmasker

public class VmskResource : VectorPathDataResource

Constructeurs

NaamBeschrijving
VmskResource()Initialiseert een nieuw exemplaar van hetVmskResource klasse.
VmskResource(byte[])Initialiseert een nieuw exemplaar van hetVmskResource klasse.

Eigenschappen

NaamBeschrijving
IsDisabled { get; set; }Haalt of stelt een waarde in die aangeeft of deze instantie is uitgeschakeld.
IsInverted { get; set; }Haalt of stelt een waarde in die aangeeft of deze instantie geïnverteerd is.
IsNotLinked { get; set; }Haalt of stelt een waarde in die aangeeft of deze instantie niet is gekoppeld.
override Key { get; }Haalt de laagbronsleutel op.
override Length { get; }Haalt de resourcelengte van de laag op in bytes.
Paths { get; set; }Haalt of stelt de padrecords in.
override PsdVersion { get; }Krijgt de psd-versie.
override Signature { get; }Krijgt de handtekening.
Version { get; set; }Haalt of stelt de versie in.

methoden

NaamBeschrijving
override Save(StreamContainer, int)Slaat de bron op in de opgegeven streamcontainer.
override ToString()Geeft als resultaat eenString die deze instantie vertegenwoordigt.

Velden

NaamBeschrijving
const TypeToolKeyDe infotoets voor het typen van gereedschap.

Voorbeelden

Het volgende voorbeeld demonstreert de ondersteuning van het laden van VmskResource-resources. Hoe werkt het bewerken van paden.

[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);
        // Lezing
        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];
        // Padvulregel bevat geen aanvullende informatie
        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");
        }
        // Bewerken
        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;
}

Zie ook