Class VsmsResource

VsmsResource class

Klasse VsmsResource. Deze bron bevat informatie over vectorlaagmasker

public class VsmsResource : VectorPathDataResource

Constructeurs

NaamBeschrijving
VsmsResource()Initialiseert een nieuw exemplaar van hetVsmsResource klasse.
VsmsResource(byte[])Initialiseert een nieuw exemplaar van hetVsmsResource 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 VsmsResource-resources. Hoe werkt het bewerken van paden.

[C#]

[Test]
public void TestPsdNet140()
{
    // VsmsResource-ondersteuning
    string sourceFileName = "EmptyRectangle.psd";
    string exportPath = "EmptyRectangle_changed.psd";
    var im = (PsdImage)Image.Load(sourceFileName);
    using (im)
    {
        var resource = GetVsmsResource(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("VsmsResource 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("VsmsResource 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(8039798, 10905191);
        initialFillRule.IsFillStartsWithAllPixels = true;
        subpathLength.IsClosed = false;
        im.Save(exportPath);
    }
}

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

Zie ook