Class VmskResource

VmskResource class

Class VmskResource. يحتوي هذا المورد على معلومات حول قناع طبقة المتجه

public class VmskResource : VectorPathDataResource

المنشئون

اسموصف
VmskResource()يقوم بتهيئة مثيل جديد لملفVmskResource فئة .
VmskResource(byte[])يقوم بتهيئة مثيل جديد لملفVmskResource فئة .

الخصائص

اسموصف
IsDisabled { get; set; }الحصول على أو تعيين قيمة تشير إلى ما إذا كان هذا المثيل معطلاً.
IsInverted { get; set; }الحصول على أو تعيين قيمة تشير إلى ما إذا كان هذا المثيل معكوسًا.
IsNotLinked { get; set; }الحصول على أو تعيين قيمة تشير إلى ما إذا كان هذا المثيل غير مرتبط.
override Key { get; }يحصل على مفتاح مورد الطبقة.
override Length { get; }الحصول على طول مورد الطبقة بالبايت.
Paths { get; set; }الحصول على أو تعيين سجلات المسار .
override PsdVersion { get; }يحصل على نسخة مديرية الأمن العام .
override Signature { get; }يحصل على التوقيع.
Version { get; set; }الحصول على الإصدار أو تحديده.

طُرق

اسموصف
override Save(StreamContainer, int)يحفظ المورد في حاوية التدفق المحددة.
override ToString()إرجاع أString الذي يمثل هذا المثال.

مجالات

اسموصف
const TypeToolKeyمفتاح معلومات أداة النوع.

أمثلة

يوضح المثال التالي دعم تحميل موارد VmskResource. كيف يعمل تحرير المسارات.

[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);
        // قراءة
        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];
        // لا تحتوي قاعدة تعبئة المسار على أي معلومات إضافية
        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");
        }
        // التحرير
        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;
}

أنظر أيضا